[Pkg-rust-maintainers] cargo still segfaults / rustc still FTBFS with the newest fixed kernel
Ximin Luo
infinity0 at debian.org
Thu Jun 29 16:37:00 UTC 2017
Ximin Luo:
> Control: unmerge 866185
> Control: unmerge 865549
> Control: forcemerge 865549 866185
> Control: notfixed linux/4.11.6-1
>
> Unfortunately I spoke too soon, the patch does not work. I had been testing with `cargo -V` and the segfault on this is now fixed by the patch, but `cargo build` still segfaults. More details in https://github.com/rust-lang/cargo/issues/4197
>
> Disabling ASLR or setting `ulimit -s 24576` works around the segfault.
>
> I am still fairly certain the issue is a kernel problem, because before June 20 I had built these things 5 times successfully on Debian buildds and more times on porterboxes:
>
> https://buildd.debian.org/status/logs.php?pkg=rustc see versions 1.17.0+dfsg2-1 to 1.17.0+dfsg2-5
>
> Some help would be appreciated as I have no idea how to debug these types of low-level situations. I'll try to step through the program at least and send the output of that here.
>
Steps to reproduce:
- In $HOME, apt-get source glibc
- Download https://static.rust-lang.org/dist/rust-1.18.0-powerpc64le-unknown-linux-gnu.tar.gz
- Extract and cd into it
- Download https://static.rust-lang.org/dist/rustc-1.18.0-src.tar.gz
- Extract and link it to "checkout" in the current directory so that gdb can
find "checkout/src/..."
On plummer.debian.org, you can set up a chroot with the necessary
build-dependencies (backslashed for easy c+p) by running:
$ echo pkg=rustc > ./vars; \
echo ssid=$(schroot -b -c sid) >> ./vars; \
. ./vars; \
dd-schroot-cmd -c $ssid apt-get update; \
dd-schroot-cmd -c $ssid apt-get upgrade -y; \
dd-schroot-cmd -c $ssid apt-get build-dep -y $pkg; \
dd-schroot-cmd -c $ssid apt-get install -y cargo wget nano; \
echo 'set -g history-limit 8192' > ~/.tmux.conf && tmux
# Inside tmux:
$ . ./vars; schroot -r -c $ssid; . ./vars
# Then run the instructions above
The segfault occurs on various commands at different frequencies and after
differing amounts of time (but all less than a few seconds). The stack traces
are all different too. Below is just one example, the one that segfaulted the
quickest out of the different commands I tried.
There are examples of segfault in other parts of the code, in the upstream
thread here: https://github.com/rust-lang/cargo/issues/4197
To re-emphasise, *none of this happened* using *the same versions* of the
software and build-dependencies before June 20. Those were done using the rustc
and cargo Debian packages, but the segfaults today happen both with the Debian
packages as well as upstream rustc+cargo binaries.
Below is a step-through the program from start to segfault, with a disassembly
and register dump at the end.
Let me know if you need anything else from me; hopefully my instructions are
precise enough for you to reproduce it yourself.
(sid_ppc64el-dchroot)infinity0 at plummer:~/test/rust-1.18.0-powerpc64le-unknown-linux-gnu$ gdb -q -d ~/glibc-2.24/debian/ -d ~/glibc-2.24/malloc/ -d ~/glibc-2.24/stdio-common/ -ex 'set disable-randomization off' -ex 'break main' -ex 'r
un install regex' cargo/bin/cargo
Reading symbols from cargo/bin/cargo...done.
Breakpoint 1 at 0x1185e4
Starting program: /home/infinity0/test/rust-1.18.0-powerpc64le-unknown-linux-gnu/cargo/bin/cargo install regex
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/powerpc64le-linux-gnu/libthread_db.so.1".
Breakpoint 1, 0x0000000032d885e4 in main ()
(gdb)
(gdb) step
Single stepping until exit from function main,
which has no line number information.
std::rt::lang_start () at /checkout/src/libstd/rt.rs:40
40 sys::init();
(gdb)
std::sys::imp::init () at /checkout/src/libstd/rt.rs:40
40 sys::init();
(gdb)
std::sys::imp::init::reset_sigpipe () at /checkout/src/libstd/sys/unix/mod.rs:95
95 assert!(signal(libc::SIGPIPE, libc::SIG_IGN) != libc::SIG_ERR);
(gdb)
__bsd_signal (sig=13, handler=0x1) at ../sysdeps/posix/signal.c:34
34 if (handler == SIG_ERR || sig < 1 || sig >= NSIG)
(gdb)
__bsd_signal (sig=13, handler=0x1) at ../sysdeps/posix/signal.c:41
41 if (__sigemptyset (&act.sa_mask) < 0
(gdb)
29 __bsd_signal (int sig, __sighandler_t handler)
(gdb)
40 act.sa_handler = handler;
(gdb)
41 if (__sigemptyset (&act.sa_mask) < 0
(gdb)
__memset_power8 () at ../sysdeps/powerpc/powerpc64/power8/memset.S:34
34 cmpldi cr7,r5,31
(gdb)
35 neg r0,r3
(gdb)
36 mr r10,r3
(gdb)
38 insrdi r4,r4,8,48
(gdb)
39 insrdi r4,r4,16,32 /* Replicate byte to word. */
(gdb)
40 ble cr7,L(write_LT_32)
(gdb)
42 andi. r11,r10,15 /* Check alignment of DST. */
(gdb)
43 insrdi r4,r4,32,0 /* Replicate word to double word. */
(gdb)
45 beq L(big_aligned)
(gdb)
74 cmpldi cr5,r5,255
(gdb)
75 dcbtst 0,r10
(gdb)
76 cmpldi cr6,r4,0
(gdb)
77 crand 27,26,21
(gdb)
78 bt 27,L(huge_dcbz)
(gdb)
79 bge cr5,L(huge_vector)
(gdb)
84 srdi r8,r5,5
(gdb)
85 clrldi r11,r5,59
(gdb)
86 cmpldi cr6,r11,0
(gdb)
87 cmpdi r8,0
(gdb)
88 beq L(tail_bytes)
(gdb)
89 mtctr r8
(gdb)
94 std r4,0(r10)
(gdb)
95 std r4,8(r10)
(gdb)
96 std r4,16(r10)
(gdb)
97 std r4,24(r10)
(gdb)
98 addi r10,r10,32
(gdb)
99 bdz L(tail_bytes)
(gdb)
101 std r4,0(r10)
(gdb)
102 std r4,8(r10)
(gdb)
103 std r4,16(r10)
(gdb)
104 std r4,24(r10)
(gdb)
105 addi r10,10,32
(gdb)
106 bdnz L(big_loop)
(gdb)
94 std r4,0(r10)
(gdb)
95 std r4,8(r10)
(gdb)
96 std r4,16(r10)
(gdb)
97 std r4,24(r10)
(gdb)
98 addi r10,r10,32
(gdb)
99 bdz L(tail_bytes)
(gdb)
101 std r4,0(r10)
(gdb)
102 std r4,8(r10)
(gdb)
103 std r4,16(r10)
(gdb)
104 std r4,24(r10)
(gdb)
105 addi r10,10,32
(gdb)
106 bdnz L(big_loop)
(gdb)
108 b L(tail_bytes)
(gdb)
113 beqlr cr6
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:42
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
__sigismember (__sig=<optimized out>, __set=<optimized out>) at ../sysdeps/unix/sysv/linux/bits/sigset.h:116
116 __SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:42
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
__sigismember (__sig=<optimized out>, __set=<optimized out>) at ../sysdeps/unix/sysv/linux/bits/sigset.h:116
116 __SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:42
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:45
45 if (__sigaction (sig, &act, &oact) < 0)
(gdb)
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
__sigismember (__sig=<optimized out>, __set=<optimized out>) at ../sysdeps/unix/sysv/linux/bits/sigset.h:116
116 __SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:42
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:45
45 if (__sigaction (sig, &act, &oact) < 0)
(gdb)
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
__sigismember (__sig=<optimized out>, __set=<optimized out>) at ../sysdeps/unix/sysv/linux/bits/sigset.h:116
116 __SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
42 || __sigaddset (&act.sa_mask, sig) < 0)
(gdb)
__sigaddset (__sig=13, __set=0x3fffc68e0570) at ../sysdeps/unix/sysv/linux/bits/sigset.h:117
117 __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:44
44 act.sa_flags = __sigismember (&_sigintr, sig) ? 0 : SA_RESTART;
(gdb)
45 if (__sigaction (sig, &act, &oact) < 0)
(gdb)
__GI___sigaction (sig=13, act=0x3fffc68e0568, oact=0x3fffc68e04d0) at ../nptl/sigaction.c:34
34 if (__glibc_unlikely (sig == SIGCANCEL || sig == SIGSETXID))
(gdb)
40 return __libc_sigaction (sig, act, oact);
(gdb)
__GI___libc_sigaction (sig=13, act=0x3fffc68e0568, oact=0x3fffc68e04d0) at ../sysdeps/unix/sysv/linux/sigaction.c:40
40 if (act)
(gdb)
35 {
(gdb)
40 if (act)
(gdb)
42 kact.k_sa_handler = act->sa_handler;
(gdb)
43 memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
(gdb)
42 kact.k_sa_handler = act->sa_handler;
(gdb)
43 memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
(gdb)
__memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:34
34 cmpldi cr1,cnt,31
(gdb)
35 neg 0,3
(gdb)
36 ble cr1, L(copy_LT_32) /* If move < 32 bytes use short move
(gdb)
42 andi. 10,3,15
(gdb)
43 clrldi 11,4,60
(gdb)
44 cmpld cr6,10,11 /* SRC and DST alignments match? */
(gdb)
46 mr dst,3
(gdb)
47 bne cr6,L(copy_GE_32_unaligned)
(gdb)
48 beq L(aligned_copy)
(gdb)
83 li 6,16
(gdb)
84 li 7,32
(gdb)
85 li 8,48
(gdb)
86 mtocrf 0x02,cnt
(gdb)
87 srdi 12,cnt,7
(gdb)
88 cmpdi 12,0
(gdb)
89 beq L(aligned_tail)
(gdb)
90 lxvd2x 6,0,src
(gdb)
91 lxvd2x 7,src,6
(gdb)
92 mtctr 12
(gdb)
93 b L(aligned_128loop)
(gdb)
101 lxvd2x 8,src,7
(gdb)
102 lxvd2x 9,src,8
(gdb)
103 stxvd2x 6,0,dst
(gdb)
104 addi src,src,64
(gdb)
105 stxvd2x 7,dst,6
(gdb)
106 stxvd2x 8,dst,7
(gdb)
107 stxvd2x 9,dst,8
(gdb)
108 lxvd2x 6,0,src
(gdb)
109 lxvd2x 7,src,6
(gdb)
110 addi dst,dst,64
(gdb)
111 lxvd2x 8,src,7
(gdb)
112 lxvd2x 9,src,8
(gdb)
113 addi src,src,64
(gdb)
114 stxvd2x 6,0,dst
(gdb)
115 stxvd2x 7,dst,6
(gdb)
116 stxvd2x 8,dst,7
(gdb)
117 stxvd2x 9,dst,8
(gdb)
118 addi dst,dst,64
(gdb)
119 bdnz L(aligned_128head)
(gdb)
122 mtocrf 0x01,cnt
(gdb)
123 bf 25,32f
(gdb)
135 bf 26,16f
(gdb)
143 bf 27,8f
(gdb)
149 bf 28,4f
(gdb)
155 bf 29,L(tail2)
(gdb)
245 bf 30,1f
(gdb)
262 bflr 31
(gdb)
__GI___libc_sigaction (sig=<optimized out>, act=0x3fffc68e0568, oact=0x3fffc68e04d0) at ../sysdeps/unix/sysv/linux/sigaction.c:44
44 kact.sa_flags = act->sa_flags;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
46 kact.sa_restorer = act->sa_restorer;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
44 kact.sa_flags = act->sa_flags;
(gdb)
46 kact.sa_restorer = act->sa_restorer;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
56 if (oact && result >= 0)
(gdb)
58 oact->sa_handler = koact.k_sa_handler;
(gdb)
59 memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
(gdb)
58 oact->sa_handler = koact.k_sa_handler;
(gdb)
59 memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
(gdb)
__memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:34
34 cmpldi cr1,cnt,31
(gdb)
35 neg 0,3
(gdb)
36 ble cr1, L(copy_LT_32) /* If move < 32 bytes use short move
(gdb)
42 andi. 10,3,15
(gdb)
43 clrldi 11,4,60
(gdb)
44 cmpld cr6,10,11 /* SRC and DST alignments match? */
(gdb)
46 mr dst,3
(gdb)
47 bne cr6,L(copy_GE_32_unaligned)
(gdb)
48 beq L(aligned_copy)
(gdb)
50 mtocrf 0x01,0
(gdb)
51 clrldi 0,0,60
(gdb)
55 bf 31,2f
(gdb)
61 bf 30,4f
(gdb)
67 bf 29,8f
(gdb)
73 bf 28,16f
(gdb)
74 ld 6,0(src)
(gdb)
75 addi src,src,8
(gdb)
76 std 6,0(dst)
(gdb)
77 addi dst,dst,8
(gdb)
79 subf cnt,0,cnt
(gdb)
83 li 6,16
(gdb)
84 li 7,32
(gdb)
85 li 8,48
(gdb)
86 mtocrf 0x02,cnt
(gdb)
87 srdi 12,cnt,7
(gdb)
88 cmpdi 12,0
(gdb)
89 beq L(aligned_tail)
(gdb)
122 mtocrf 0x01,cnt
(gdb)
123 bf 25,32f
(gdb)
124 lxvd2x 6,0,src
(gdb)
125 lxvd2x 7,src,6
(gdb)
126 lxvd2x 8,src,7
(gdb)
127 lxvd2x 9,src,8
(gdb)
128 addi src,src,64
(gdb)
129 stxvd2x 6,0,dst
(gdb)
130 stxvd2x 7,dst,6
(gdb)
131 stxvd2x 8,dst,7
(gdb)
132 stxvd2x 9,dst,8
(gdb)
133 addi dst,dst,64
(gdb)
135 bf 26,16f
(gdb)
136 lxvd2x 6,0,src
(gdb)
137 lxvd2x 7,src,6
(gdb)
138 addi src,src,32
(gdb)
139 stxvd2x 6,0,dst
(gdb)
140 stxvd2x 7,dst,6
(gdb)
141 addi dst,dst,32
(gdb)
143 bf 27,8f
(gdb)
144 lxvd2x 6,0,src
(gdb)
145 addi src,src,16
(gdb)
146 stxvd2x 6,0,dst
(gdb)
147 addi dst,dst,16
(gdb)
149 bf 28,4f
(gdb)
150 ld 6,0(src)
(gdb)
151 addi src,src,8
(gdb)
152 std 6,0(dst)
(gdb)
153 addi dst,dst,8
(gdb)
155 bf 29,L(tail2)
(gdb)
245 bf 30,1f
(gdb)
262 bflr 31
(gdb)
__GI___libc_sigaction (sig=<optimized out>, act=<optimized out>, oact=0x3fffc68e04d0) at ../sysdeps/unix/sysv/linux/sigaction.c:60
60 oact->sa_flags = koact.sa_flags;
(gdb)
62 oact->sa_restorer = koact.sa_restorer;
(gdb)
66 }
(gdb)
__bsd_signal (sig=<optimized out>, handler=<optimized out>) at ../sysdeps/posix/signal.c:48
48 return oact.sa_handler;
(gdb)
49 }
(gdb)
std::sys::imp::init () at /checkout/src/libstd/sys/unix/mod.rs:75
75 oom::set_oom_handler(oom_handler);
(gdb)
core::sync::atomic::atomic_store<usize> () at /checkout/src/libcore/sync/atomic.rs:1406
1406 SeqCst => intrinsics::atomic_store(dst, val),
(gdb)
alloc::oom::imp::set_oom_handler () at /checkout/src/liballoc/oom.rs:52
52 }
(gdb)
std::rt::lang_start () at /checkout/src/libstd/rt.rs:43
43 let main_guard = sys::thread::guard::init();
(gdb)
std::sys::imp::thread::guard::init () at /checkout/src/libstd/rt.rs:43
43 let main_guard = sys::thread::guard::init();
(gdb)
std::sys::imp::os::page_size () at /checkout/src/libstd/sys/unix/os.rs:457
457 libc::sysconf(libc::_SC_PAGESIZE) as usize
(gdb)
__GI___sysconf (name=30) at ../sysdeps/unix/sysv/linux/sysconf.c:72
72 switch (name)
(gdb)
69 {
(gdb)
72 switch (name)
(gdb)
140 return posix_sysconf (name);
(gdb)
posix_sysconf (name=30) at ../sysdeps/posix/sysconf.c:53
53 switch (name)
(gdb)
214 return __getpagesize ();
(gdb)
__GI___getpagesize () at ../sysdeps/unix/sysv/linux/getpagesize.c:28
28 assert (GLRO(dl_pagesize) != 0);
(gdb)
30 }
(gdb)
__GI___sysconf (name=<optimized out>) at ../sysdeps/unix/sysv/linux/sysconf.c:141
141 }
(gdb)
std::sys::imp::thread::guard::init () at /checkout/src/libstd/sys/unix/thread.rs:250
250 let mut stackaddr = match get_stack_start() {
(gdb)
std::sys::imp::thread::guard::get_stack_start () at /checkout/src/libstd/sys/unix/thread.rs:250
250 let mut stackaddr = match get_stack_start() {
(gdb)
core::mem::zeroed<libc::unix::notbsd::linux::other::b64::powerpc64::pthread_attr_t> () at /checkout/src/libcore/mem.rs:334
334 intrinsics::init()
(gdb)
std::sys::imp::thread::guard::get_stack_start () at /checkout/src/libstd/sys/unix/thread.rs:232
232 assert_eq!(libc::pthread_attr_init(&mut attr), 0);
(gdb)
__pthread_attr_init_2_1 (attr=0x3fffc68e06f0) at pthread_attr_init.c:40
40 pthread_attr_init.c: No such file or directory.
(gdb)
34 in pthread_attr_init.c
(gdb)
40 in pthread_attr_init.c
(gdb)
46 in pthread_attr_init.c
(gdb)
__GI___getpagesize () at ../sysdeps/unix/sysv/linux/getpagesize.c:28
28 assert (GLRO(dl_pagesize) != 0);
(gdb)
30 }
(gdb)
__pthread_attr_init_2_1 (attr=0x3fffc68e06f0) at pthread_attr_init.c:49
49 pthread_attr_init.c: No such file or directory.
(gdb)
46 in pthread_attr_init.c
(gdb)
49 in pthread_attr_init.c
(gdb)
std::sys::imp::thread::guard::get_stack_start () at /checkout/src/libstd/sys/unix/thread.rs:236
236 let e = libc::pthread_getattr_np(libc::pthread_self(), &mut attr);
(gdb)
__pthread_self () at pthread_self.c:27
27 pthread_self.c: No such file or directory.
(gdb)
pthread_getattr_np (thread_id=70366795949872, attr=0x3fffc68e06f0) at pthread_getattr_np.c:39
39 pthread_getattr_np.c: No such file or directory.
(gdb)
34 in pthread_getattr_np.c
(gdb)
39 in pthread_getattr_np.c
(gdb)
34 in pthread_getattr_np.c
(gdb)
39 in pthread_getattr_np.c
(gdb)
43 in pthread_getattr_np.c
(gdb)
48 in pthread_getattr_np.c
(gdb)
45 in pthread_getattr_np.c
(gdb)
48 in pthread_getattr_np.c
(gdb)
51 in pthread_getattr_np.c
(gdb)
58 in pthread_getattr_np.c
(gdb)
55 in pthread_getattr_np.c
(gdb)
58 in pthread_getattr_np.c
(gdb)
55 in pthread_getattr_np.c
(gdb)
58 in pthread_getattr_np.c
(gdb)
78 in pthread_getattr_np.c
(gdb)
_IO_new_fopen (filename=0x3fff8bd3b0b0 "/proc/self/maps", mode=0x3fff8bd3b0a8 "rce") at iofopen.c:97
97 iofopen.c: No such file or directory.
(gdb)
96 in iofopen.c
(gdb)
97 in iofopen.c
(gdb)
__fopen_internal (filename=0x3fff8bd3b0b0 "/proc/self/maps", mode=0x3fff8bd3b0a8 "rce", is32=1) at iofopen.c:69
69 in iofopen.c
(gdb)
61 in iofopen.c
(gdb)
69 in iofopen.c
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x00003fff8bbb1014 in __GI___libc_malloc (bytes=256) at malloc.c:2917
warning: Source file is more recent than executable.
2917 {
(gdb)
std::sys::imp::stack_overflow::imp::signal_handler () at /checkout/src/libstd/sys/unix/stack_overflow.rs:100
100 unsafe extern fn signal_handler(signum: libc::c_int,
(gdb)
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
std::sys_common::thread_info::stack_guard () at /checkout/src/libstd/sys/unix/stack_overflow.rs:105
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
std::sys_common::thread_info::ThreadInfo::with<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys/unix/stack_overflow.rs:105
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::state<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys/unix/stack_overflow.rs:105
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
std::sys_common::thread_info::THREAD_INFO::__getit () at /checkout/src/libstd/sys/unix/stack_overflow.rs:105
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys/unix/stack_overflow.rs:105
105 let guard = thread_info::stack_guard().unwrap_or(0);
(gdb)
core::cell::Cell<bool>::get<bool> () at /checkout/src/libcore/cell.rs:214
214 unsafe{ *self.value.get() }
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys/unix/fast_thread_local.rs:47
47 if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
(gdb)
std::sys_common::thread_info::stack_guard () at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
std::sys_common::thread_info::ThreadInfo::with<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::state<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
std::sys_common::thread_info::THREAD_INFO::__getit () at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::register_dtor<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
core::cell::Cell<bool>::get<bool> () at /checkout/src/libcore/cell.rs:214
214 unsafe{ *self.value.get() }
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::register_dtor<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys/unix/fast_thread_local.rs:56
56 if !intrinsics::needs_drop::<T>() || self.dtor_registered.get() {
(gdb)
std::sys_common::thread_info::ThreadInfo::with<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys_common/thread_info.rs:30
30 THREAD_INFO.with(move |c| {
(gdb)
std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,core::option::Option<
core::option::Option<usize>>> () at /checkout/src/libstd/sys_common/thread_info.rs:30
30 THREAD_INFO.with(move |c| {
(gdb)
std::sys_common::thread_info::THREAD_INFO::__getit () at /checkout/src/libstd/sys_common/thread_info.rs:30
30 THREAD_INFO.with(move |c| {
(gdb)
std::sys::imp::fast_thread_local::Key<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::get<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> ()
at /checkout/src/libstd/sys/unix/fast_thread_local.rs:47
47 if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
(gdb)
std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>>::with<core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>,closure,core::option::Option<
core::option::Option<usize>>> () at /checkout/src/libstd/thread/local.rs:254
254 Some(ref inner) => inner,
(gdb)
253 f(match *slot.get() {
(gdb)
std::sys_common::thread_info::{{impl}}::with::{{closure}}<core::option::Option<usize>,closure> () at /checkout/src/libstd/thread/local.rs:253
253 f(match *slot.get() {
(gdb)
core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>::borrow<core::option::Option<std::sys_common::thread_info::ThreadInfo>> () at /checkout/src/libstd/thread/local.rs:253
253 f(match *slot.get() {
(gdb)
core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>::try_borrow<core::option::Option<std::sys_common::thread_info::ThreadInfo>> () at /checkout/src/libstd/thread/local.rs:253
253 f(match *slot.get() {
(gdb)
core::cell::BorrowRef::new () at /checkout/src/libstd/thread/local.rs:253
253 f(match *slot.get() {
(gdb)
core::cell::Cell<usize>::get<usize> () at /checkout/src/libcore/cell.rs:214
214 unsafe{ *self.value.get() }
(gdb)
core::cell::BorrowRef::new () at /checkout/src/libcore/cell.rs:844
844 WRITING => None,
(gdb)
std::sys_common::thread_info::{{impl}}::with::{{closure}}<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys_common/thread_info.rs:31
31 if c.borrow().is_none() {
(gdb)
core::option::Option<std::sys_common::thread_info::ThreadInfo>::is_none<std::sys_common::thread_info::ThreadInfo> () at /checkout/src/libstd/sys_common/thread_info.rs:31
31 if c.borrow().is_none() {
(gdb)
core::option::Option<std::sys_common::thread_info::ThreadInfo>::is_some<std::sys_common::thread_info::ThreadInfo> () at /checkout/src/libcore/option.rs:192
192 Some(_) => true,
(gdb)
std::sys_common::thread_info::{{impl}}::with::{{closure}}<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys_common/thread_info.rs:31
31 if c.borrow().is_none() {
(gdb)
37 Some(f(c.borrow_mut().as_mut().unwrap()))
(gdb)
core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>::borrow_mut<core::option::Option<std::sys_common::thread_info::ThreadInfo>> () at /checkout/src/libstd/sys_common/thread_info.rs:37
37 Some(f(c.borrow_mut().as_mut().unwrap()))
(gdb)
core::cell::RefCell<core::option::Option<std::sys_common::thread_info::ThreadInfo>>::try_borrow_mut<core::option::Option<std::sys_common::thread_info::ThreadInfo>> () at /checkout/src/libstd/sys_common/thread_info.rs:37
37 Some(f(c.borrow_mut().as_mut().unwrap()))
(gdb)
core::cell::BorrowRefMut::new () at /checkout/src/libcore/cell.rs:1000
1000 UNUSED => {
(gdb)
1001 borrow.set(WRITING);
(gdb)
core::cell::Cell<usize>::set<usize> () at /checkout/src/libcore/cell.rs:1001
1001 borrow.set(WRITING);
(gdb)
core::cell::Cell<usize>::replace<usize> () at /checkout/src/libcore/cell.rs:1001
1001 borrow.set(WRITING);
(gdb)
core::mem::replace<usize> () at /checkout/src/libcore/cell.rs:1001
1001 borrow.set(WRITING);
(gdb)
core::mem::swap<usize> () at /checkout/src/libcore/mem.rs:455
455 ptr::copy_nonoverlapping(&*y, x, 1);
(gdb)
std::sys_common::thread_info::{{impl}}::with::{{closure}}<core::option::Option<usize>,closure> () at /checkout/src/libstd/sys_common/thread_info.rs:37
37 Some(f(c.borrow_mut().as_mut().unwrap()))
(gdb)
38 })
(gdb)
core::ptr::drop_in_place<core::cell::RefMut<core::option::Option<std::sys_common::thread_info::ThreadInfo>>> () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::ptr::drop_in_place<core::cell::BorrowRefMut> () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::cell::{{impl}}::drop () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::cell::Cell<usize>::set<usize> () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::cell::Cell<usize>::replace<usize> () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::mem::replace<usize> () at /checkout/src/libstd/sys_common/thread_info.rs:38
38 })
(gdb)
core::mem::swap<usize> () at /checkout/src/libcore/mem.rs:455
455 ptr::copy_nonoverlapping(&*y, x, 1);
(gdb)
std::sys_common::thread_info::stack_guard () at /checkout/src/libstd/sys_common/thread_info.rs:47
47 ThreadInfo::with(|info| info.stack_guard).and_then(|o| o)
(gdb)
core::option::Option<core::option::Option<usize>>::and_then<core::option::Option<usize>,usize,closure> () at /checkout/src/libcore/option.rs:585
585 pub fn and_then<U, F: FnOnce(T) -> Option<U>>(self, f: F) -> Option<U> {
(gdb)
587 Some(x) => f(x),
(gdb)
std::sys::imp::stack_overflow::imp::signal_handler () at /checkout/src/libstd/sys/unix/stack_overflow.rs:110
110 if guard != 0 && guard - PAGE_SIZE <= addr && addr < guard {
(gdb)
106 let addr = siginfo_si_addr(info);
(gdb)
std::sys::imp::stack_overflow::imp::siginfo_si_addr () at /checkout/src/libstd/sys/unix/stack_overflow.rs:71
71 (*(info as *const siginfo_t)).si_addr as usize
(gdb)
std::sys::imp::stack_overflow::imp::signal_handler () at /checkout/src/libstd/sys/unix/stack_overflow.rs:110
110 if guard != 0 && guard - PAGE_SIZE <= addr && addr < guard {
(gdb)
116 action.sa_sigaction = SIG_DFL;
(gdb)
__memset_power8 () at ../sysdeps/powerpc/powerpc64/power8/memset.S:34
34 cmpldi cr7,r5,31
(gdb)
35 neg r0,r3
(gdb)
36 mr r10,r3
(gdb)
38 insrdi r4,r4,8,48
(gdb)
39 insrdi r4,r4,16,32 /* Replicate byte to word. */
(gdb)
40 ble cr7,L(write_LT_32)
(gdb)
42 andi. r11,r10,15 /* Check alignment of DST. */
(gdb)
43 insrdi r4,r4,32,0 /* Replicate word to double word. */
(gdb)
45 beq L(big_aligned)
(gdb)
74 cmpldi cr5,r5,255
(gdb)
75 dcbtst 0,r10
(gdb)
76 cmpldi cr6,r4,0
(gdb)
77 crand 27,26,21
(gdb)
78 bt 27,L(huge_dcbz)
(gdb)
79 bge cr5,L(huge_vector)
(gdb)
84 srdi r8,r5,5
(gdb)
85 clrldi r11,r5,59
(gdb)
86 cmpldi cr6,r11,0
(gdb)
87 cmpdi r8,0
(gdb)
88 beq L(tail_bytes)
(gdb)
89 mtctr r8
(gdb)
94 std r4,0(r10)
(gdb)
95 std r4,8(r10)
(gdb)
96 std r4,16(r10)
(gdb)
97 std r4,24(r10)
(gdb)
98 addi r10,r10,32
(gdb)
99 bdz L(tail_bytes)
(gdb)
101 std r4,0(r10)
(gdb)
102 std r4,8(r10)
(gdb)
103 std r4,16(r10)
(gdb)
104 std r4,24(r10)
(gdb)
105 addi r10,10,32
(gdb)
106 bdnz L(big_loop)
(gdb)
94 std r4,0(r10)
(gdb)
95 std r4,8(r10)
(gdb)
96 std r4,16(r10)
(gdb)
97 std r4,24(r10)
(gdb)
98 addi r10,r10,32
(gdb)
99 bdz L(tail_bytes)
(gdb)
101 std r4,0(r10)
(gdb)
102 std r4,8(r10)
(gdb)
103 std r4,16(r10)
(gdb)
104 std r4,24(r10)
(gdb)
105 addi r10,10,32
(gdb)
106 bdnz L(big_loop)
(gdb)
108 b L(tail_bytes)
(gdb)
113 beqlr cr6
(gdb)
115 srdi r7,r11,4
(gdb)
116 clrldi r8,r11,60
(gdb)
117 mtocrf 0x01,r7
(gdb)
120 bf 31,8f
(gdb)
121 std r4,0(r10)
(gdb)
122 std r4,8(r10)
(gdb)
123 addi r10,r10,16
(gdb)
126 8: mtocrf 0x1,r8
(gdb)
127 bf 28,4f
(gdb)
128 std r4,0(r10)
(gdb)
129 addi r10,r10,8
(gdb)
132 4: bf 29,2f
(gdb)
137 2: bf 30,1f
(gdb)
142 1: bflr 31
(gdb)
std::sys::imp::stack_overflow::imp::signal_handler () at /checkout/src/libstd/sys/unix/stack_overflow.rs:117
117 sigaction(signum, &action, ptr::null_mut());
(gdb)
__sigaction (sig=11, act=0x3fff8bd92e50, oact=0x0) at ../nptl/sigaction.c:34
34 if (__glibc_unlikely (sig == SIGCANCEL || sig == SIGSETXID))
(gdb)
33 {
(gdb)
40 return __libc_sigaction (sig, act, oact);
(gdb)
__libc_sigaction (sig=11, act=0x3fff8bd92e50, oact=0x0) at ../sysdeps/unix/sysv/linux/sigaction.c:40
40 if (act)
(gdb)
35 {
(gdb)
40 if (act)
(gdb)
42 kact.k_sa_handler = act->sa_handler;
(gdb)
43 memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
(gdb)
42 kact.k_sa_handler = act->sa_handler;
(gdb)
43 memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
(gdb)
__memcpy_power7 () at ../sysdeps/powerpc/powerpc64/power7/memcpy.S:34
34 cmpldi cr1,cnt,31
(gdb)
35 neg 0,3
(gdb)
36 ble cr1, L(copy_LT_32) /* If move < 32 bytes use short move
(gdb)
42 andi. 10,3,15
(gdb)
43 clrldi 11,4,60
(gdb)
44 cmpld cr6,10,11 /* SRC and DST alignments match? */
(gdb)
46 mr dst,3
(gdb)
47 bne cr6,L(copy_GE_32_unaligned)
(gdb)
289 clrldi 0,0,60 /* Number of bytes until the 1st dst quadword. */
(gdb)
290 srdi 9,cnt,4 /* Number of full quadwords remaining. */
(gdb)
292 beq L(copy_GE_32_unaligned_cont)
(gdb)
332 clrldi 10,cnt,60
(gdb)
333 li 6,16 /* Index for 16-bytes offsets. */
(gdb)
334 li 7,32 /* Index for 32-bytes offsets. */
(gdb)
335 cmpldi cr1,10,0
(gdb)
336 srdi 8,cnt,5 /* Setup the loop counter. */
(gdb)
337 mtocrf 0x01,9
(gdb)
338 cmpldi cr6,9,1
(gdb)
340 lvsr 5,0,src
(gdb)
344 lvx 3,0,src
(gdb)
345 li 0,0
(gdb)
346 bf 31,L(setup_unaligned_loop)
(gdb)
362 mtctr 8
(gdb)
363 ble cr6,L(end_unaligned_loop)
(gdb)
374 lvx 4,src,6
(gdb)
376 vperm 6,4,3,5
(gdb)
380 lvx 3,src,7
(gdb)
382 vperm 10,3,4,5
(gdb)
386 addi src,src,32
(gdb)
387 stvx 6,0,dst
(gdb)
388 stvx 10,dst,6
(gdb)
389 addi dst,dst,32
(gdb)
390 bdnz L(unaligned_loop)
(gdb)
374 lvx 4,src,6
(gdb)
376 vperm 6,4,3,5
(gdb)
380 lvx 3,src,7
(gdb)
382 vperm 10,3,4,5
(gdb)
386 addi src,src,32
(gdb)
387 stvx 6,0,dst
(gdb)
388 stvx 10,dst,6
(gdb)
389 addi dst,dst,32
(gdb)
390 bdnz L(unaligned_loop)
(gdb)
374 lvx 4,src,6
(gdb)
376 vperm 6,4,3,5
(gdb)
380 lvx 3,src,7
(gdb)
382 vperm 10,3,4,5
(gdb)
386 addi src,src,32
(gdb)
387 stvx 6,0,dst
(gdb)
388 stvx 10,dst,6
(gdb)
389 addi dst,dst,32
(gdb)
390 bdnz L(unaligned_loop)
(gdb)
374 lvx 4,src,6
(gdb)
376 vperm 6,4,3,5
(gdb)
380 lvx 3,src,7
(gdb)
382 vperm 10,3,4,5
(gdb)
386 addi src,src,32
(gdb)
387 stvx 6,0,dst
(gdb)
388 stvx 10,dst,6
(gdb)
389 addi dst,dst,32
(gdb)
390 bdnz L(unaligned_loop)
(gdb)
392 clrrdi 0,src,60
(gdb)
398 mtocrf 0x01,cnt
(gdb)
399 beqlr cr1
(gdb)
__libc_sigaction (sig=<optimized out>, act=0x3fff8bd92e50, oact=0x0) at ../sysdeps/unix/sysv/linux/sigaction.c:44
44 kact.sa_flags = act->sa_flags;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
46 kact.sa_restorer = act->sa_restorer;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
44 kact.sa_flags = act->sa_flags;
(gdb)
46 kact.sa_restorer = act->sa_restorer;
(gdb)
52 result = INLINE_SYSCALL (rt_sigaction, 4, sig,
(gdb)
56 if (oact && result >= 0)
(gdb)
66 }
(gdb)
__sigaction (sig=<optimized out>, act=<optimized out>, oact=<optimized out>) at ../nptl/sigaction.c:41
41 }
(gdb)
std::sys::imp::stack_overflow::imp::signal_handler () at /checkout/src/libstd/sys/unix/stack_overflow.rs:121
121 }
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x00003fff8bbb1014 in __GI___libc_malloc (bytes=256) at malloc.c:2917
2917 {
(gdb) bt
#0 0x00003fff8bbb1014 in __GI___libc_malloc (bytes=256) at malloc.c:2917
#1 0x000000003342a6d4 in alloc_system::imp::allocate () at /checkout/src/liballoc_system/lib.rs:90
#2 alloc_system::__rust_allocate () at /checkout/src/liballoc_system/lib.rs:44
#3 0x000000003321c17c in _$LT$alloc..raw_vec..RawVec$LT$T$GT$$GT$::double::hf4fc146b666fa3db ()
#4 0x000000003322c474 in regex_syntax::parser::Parser::parse_expr::h69b18aabf3de27d8 ()
#5 0x0000000033239b88 in regex_syntax::ExprBuilder::parse::h99b8f77ea0168dc6 ()
#6 0x00000000331ddf94 in regex::exec::ExecBuilder::build::hcca5817b4c570623 ()
#7 0x000000003320aee0 in regex::re_unicode::Regex::new::h499bc833cb50ff25 ()
#8 0x000000003304f418 in std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::hc6b7b4797627284a ()
#9 0x000000003340f058 in std::sync::once::Once::call_inner () at /checkout/src/libstd/sync/once.rs:307
#10 0x00000000330670dc in docopt::parse::PatParser::pattern::hf6f9204f48974473 ()
#11 0x0000000033065c18 in docopt::parse::PatParser::parse::hce6cd4b7448bbe3b ()
#12 0x0000000033064590 in docopt::parse::Parser::parse::h46a0b058a05c5e45 ()
#13 0x000000003305eaa4 in docopt::parse::Parser::new::h07ab0f370bc545c9 ()
#14 0x0000000032d3fd14 in cargo::try_execute_builtin_command::h32fd38c139ab33ff ()
#15 0x0000000032d32fac in cargo::execute::h123d808e8d53a2f6 ()
#16 0x0000000032d2363c in cargo::call_main_without_stdin::h22117ce339cc3d61 ()
#17 0x0000000032d316d4 in cargo::main::h7ce25b0d0a8f899f ()
#18 0x000000003341e21c in core::ops::FnOnce::call_once<fn(),()> () at /checkout/src/libcore/ops.rs:2626
#19 std::panicking::try::do_call<fn(),()> () at /checkout/src/libstd/panicking.rs:454
#20 0x00000000334270f0 in panic_unwind::__rust_maybe_catch_panic () at /checkout/src/libpanic_unwind/lib.rs:98
#21 0x000000003341efdc in std::panicking::try<(),fn()> () at /checkout/src/libstd/panicking.rs:433
#22 std::panic::catch_unwind<fn(),()> () at /checkout/src/libstd/panic.rs:361
#23 std::rt::lang_start () at /checkout/src/libstd/rt.rs:57
#24 0x0000000032d885f8 in main ()
(gdb) disas
Dump of assembler code for function __GI___libc_malloc:
0x00003fff8bbb0ff0 <+0>: addis r2,r12,18
0x00003fff8bbb0ff4 <+4>: addi r2,r2,25360
0x00003fff8bbb0ff8 <+8>: mflr r0
0x00003fff8bbb0ffc <+12>: nop
0x00003fff8bbb1000 <+16>: ld r9,-31832(r2)
0x00003fff8bbb1004 <+20>: std r29,-24(r1)
0x00003fff8bbb1008 <+24>: std r30,-16(r1)
0x00003fff8bbb100c <+28>: std r31,-8(r1)
0x00003fff8bbb1010 <+32>: std r0,16(r1)
=> 0x00003fff8bbb1014 <+36>: stdu r1,-64(r1)
0x00003fff8bbb1018 <+40>: ld r9,0(r9)
0x00003fff8bbb101c <+44>: cmpdi cr7,r9,0
0x00003fff8bbb1020 <+48>: bne cr7,0x3fff8bbb1160 <__GI___libc_malloc+368>
0x00003fff8bbb1024 <+52>: nop
0x00003fff8bbb1028 <+56>: mr r29,r3
0x00003fff8bbb102c <+60>: ld r9,-29824(r2)
0x00003fff8bbb1030 <+64>: add r9,r9,r13
0x00003fff8bbb1034 <+68>: ld r31,0(r9)
0x00003fff8bbb1038 <+72>: cmpdi cr7,r31,0
0x00003fff8bbb103c <+76>: beq cr7,0x3fff8bbb104c <__GI___libc_malloc+92>
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) info registers
r0 0x3342a6d4 860006100
r1 0x3fffc68c0030 70367780274224
r2 0x3fff8bcd7300 70366794707712
r3 0x100 256
r4 0x8 8
r5 0x100 256
r6 0x0 0
r7 0x0 0
r8 0x7d 125
r9 0x3fff8bcd15c8 70366794683848
r10 0x3fffc68c09c9 70367780276681
r11 0x2f 47
r12 0x3fff8bbb0ff0 70366793502704
r13 0x3fff8be0de90 70366795980432
r14 0x30 48
r15 0xfffffffffffffe50 18446744073709551184
r16 0x0 0
r17 0x1 1
r18 0x3fffc68c0790 70367780276112
r19 0x50 80
r20 0x3fffc68c0468 70367780275304
r21 0x3fffc68c0a20 70367780276768
r22 0x7d00000000 536870912000
r23 0x3fffc68c0728 70367780276008
r24 0x10 16
r25 0xffffffffffffffa0 18446744073709551520
r26 0x3fffc68c2a70 70367780285040
r27 0x3fffc68c3090 70367780286608
r28 0x3fffc68c0f38 70367780278072
r29 0x3fffc68c2a78 70367780285048
r30 0x3fffc68c0420 70367780275232
r31 0x3fffc68c0030 70367780274224
pc 0x3fff8bbb1014 0x3fff8bbb1014 <__GI___libc_malloc+36>
msr 0x800000010000d433 9223372041149797427
cr 0x24464022 608583714
lr 0x3342a6d4 0x3342a6d4 <alloc_system::__rust_allocate+52>
ctr 0x3fff8bbb0ff0 70366793502704
xer 0x0 0
orig_r3 0xc00000000000a1fc -4611686018427346436
trap 0x300 768
(gdb) step
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
The program is not being run.
(gdb)
The program is not being run.
(gdb) quit
(sid_ppc64el-dchroot)infinity0 at plummer:~/test/rust-1.18.0-powerpc64le-unknown-linux-gnu$
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
More information about the Pkg-rust-maintainers
mailing list