Skip to content

Instantly share code, notes, and snippets.

View yuyichao's full-sized avatar

Yichao Yu yuyichao

View GitHub Profile

Keybase proof

I hereby claim:

  • I am yuyichao on github.
  • I am yuyichao (https://keybase.io/yuyichao) on keybase.
  • I have a public key whose fingerprint is D883 90B2 991F 8242 FABD 2A3C 07F4 5E2A 1937 DD32

To claim this, I am signing this object:

#0 push_root (v=0x7ffdf487aa40, d=48, bits=<optimized out>) at gc.c:1735
slot = 0x7ffdf4888af0
fld = 0x3
i = <optimized out>
dt = <optimized out>
dtsz = <optimized out>
nf = <optimized out>
fields = <optimized out>
vt = <optimized out>
refyoung = 0
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6af5765 in gc_setmark_big (mark_mode=1, o=0x7ffdf402cac8) at gc.c:559
559 hdr->next->prev = hdr->prev;
(gdb) bt full
#0 0x00007ffff6af5765 in gc_setmark_big (mark_mode=1, o=0x7ffdf402cac8) at gc.c:559
hdr = 0x7ffdf402cab0
bits = 2
#1 gc_setmark (mark_mode=3, sz=<optimized out>, v=0x7ffdf402cad0) at gc.c:619
o = 0x7ffdf402cac8
#2 push_root (v=0x7ffdf402cad0, d=46, bits=2) at gc.c:1721
Dump of assembler code for function julia_call_64802:
0x0000000000316b80 <+0>: push %rbp
0x0000000000316b81 <+1>: mov %rsp,%rbp
0x0000000000316b84 <+4>: push %r15
0x0000000000316b86 <+6>: push %r14
0x0000000000316b88 <+8>: push %r13
0x0000000000316b8a <+10>: push %r12
0x0000000000316b8c <+12>: push %rbx
0x0000000000316b8d <+13>: sub $0x88,%rsp
0x0000000000316b94 <+20>: mov %rsi,-0x90(%rbp)
yuyichao% JULIA_DEBUG_GC=1 gdb --args ../julia -C native --build ../sys0 sysimg.jl
GNU gdb (GDB) 7.9
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
(gdb) bt
#0 0x00007ffff63e0528 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff63e193a in abort () from /usr/lib/libc.so.6
#2 0x00007ffff6af9fcd in gc_verify () at gc.c:2104
#3 jl_gc_collect (full=<optimized out>, full@entry=0) at gc.c:2311
#4 0x00007ffff6afd2b7 in maybe_collect () at gc.c:809
#5 jl_gc_counted_malloc (sz=40) at gc.c:2748
#6 0x00007ffdef4f1f60 in mpfr_init2 (x=0x7ffdf6113760, p=256) at init2.c:55
#7 0x00007ffff3fb1c14 in julia_call_29520 () at mpfr.jl:51
#8 0x00007ffdede630a7 in julia_call_47096 (x=0x0) at mpfr.jl:70
define internal %jl_value_t* @julia_call_29520(%jl_value_t*, %jl_value_t**, i32) {
top:
call void @llvm.dbg.value(metadata %jl_value_t** %1, i64 0, metadata !41554, metadata !15292)
%3 = alloca [5 x %jl_value_t*], align 8
%.sub = getelementptr inbounds [5 x %jl_value_t*]* %3, i64 0, i64 0
%4 = getelementptr [5 x %jl_value_t*]* %3, i64 0, i64 2, !dbg !41555
%5 = bitcast [5 x %jl_value_t*]* %3 to i64*, !dbg !41555
store i64 6, i64* %5, align 8
%6 = getelementptr [5 x %jl_value_t*]* %3, i64 0, i64 1, !dbg !41555
%7 = bitcast %jl_value_t** %6 to %jl_value_t***, !dbg !41555
* thread #1: tid = 28836, 0x00007ffff63e0528 libc.so.6`__GI_raise + 56, name = 'julia', stop reason = signal SIGABRT
* frame #0: 0x00007ffff63e0528 libc.so.6`__GI_raise + 56
frame #1: 0x00007ffff63e193a libc.so.6`__GI_abort + 362
frame #2: 0x00007ffff6af9fcd libjulia.so`jl_gc_collect + 149 at gc.c:2104
frame #3: 0x00007ffff6af9f38 libjulia.so`jl_gc_collect(full=<unavailable>) + 3160 at gc.c:2311
frame #4: 0x00007ffff6afd2b7 libjulia.so`jl_gc_counted_malloc [inlined] maybe_collect + 39 at gc.c:809
frame #5: 0x
; Function Attrs: sspreq
define i1 @"julia_==_43936"([2 x i32], [2 x i32]) #-1 {
pass5:
%StackGuardSlot = alloca i8*
%StackGuard = load i8* addrspace(256)* inttoptr (i32 20 to i8* addrspace(256)*)
call void @llvm.stackprotector(i8* %StackGuard, i8** %StackGuardSlot)
%2 = call i8* @llvm.stacksave()
%3 = alloca [2 x i32], align 4
store [2 x i32] %0, [2 x i32]* %3, align 4
%4 = bitcast [2 x i32]* %3 to i32*
; Function Attrs: sspreq
define i1 @"julia_==_43936"([2 x i32], [2 x i32]) #0 {
pass5:
%StackGuardSlot = alloca i8*
%StackGuard = load i8* addrspace(256)* inttoptr (i32 20 to i8* addrspace(256)*)
call void @llvm.stackprotector(i8* %StackGuard, i8** %StackGuardSlot)
call void @llvm.dbg.value(metadata [2 x i32] %0, i64 0, metadata !13, metadata !15)
call void @llvm.dbg.value(metadata [2 x i32] %1, i64 0, metadata !16, metadata !15)
call void @llvm.dbg.value(metadata i32 1, i64 0, metadata !17, metadata !15)
call void @llvm.dbg.value(metadata i32 1, i64 0, metadata !18, metadata !15)