rr icon indicating copy to clipboard operation
rr copied to clipboard

rr record failed with SEGV

Open wmi0 opened this issue 2 years ago • 10 comments

In rr here was what I saw:

Before executing 0x00007fc0c40def2d, the assembly looked like this: 0x00007fc0c40deeeb <+427>: syscall 0x00007fc0c40deeed <+429>: jmp 0x7fc0c40def2f <__pthread_cond_broadcast+495> 0x00007fc0c40deeef <+431>: mov (%r9),%eax 0x00007fc0c40deef2 <+434>: data16 data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) 0x00007fc0c40def00 <+448>: mov %eax,%ecx 0x00007fc0c40def02 <+450>: and $0xfffffffc,%ecx 0x00007fc0c40def05 <+453>: lock cmpxchg %ecx,(%r9) 0x00007fc0c40def0a <+458>: jne 0x7fc0c40def00 <__pthread_cond_broadcast+448> 0x00007fc0c40def0c <+460>: and $0x3,%eax 0x00007fc0c40def0f <+463>: cmp $0x2,%eax 0x00007fc0c40def12 <+466>: mov -0x2c(%rbp),%esi 0x00007fc0c40def15 <+469>: jne 0x7fc0c40def3b <__pthread_cond_broadcast+507> 0x00007fc0c40def17 <+471>: xor $0x81,%esi 0x00007fc0c40def1d <+477>: mov $0xca,%eax 0x00007fc0c40def22 <+482>: mov %r9,%rdi 0x00007fc0c40def25 <+485>: mov $0x1,%edx 0x00007fc0c40def2a <+490>: xor %r10d,%r10d => 0x00007fc0c40def2d <+493>: syscall 0x00007fc0c40def2f <+495>: cmp $0xfffffffffffff001,%rax 0x00007fc0c40def35 <+501>: jae 0x7fc0c40df012 <__pthread_cond_broadcast+722> 0x00007fc0c40def3b <+507>: xor %eax,%eax 0x00007fc0c40def3d <+509>: add $0x8,%rsp

The syscall at 0x7fc0c40def2d was a futex_wake and was generated from the source code here: https://github.com/bminor/glibc/blob/b92a49359f33a461db080a33940d73f47c756126/nptl/pthread_cond_broadcast.c#L85.

After executing 0x00007fc0c40def2d, the mem locations from 0x00007fc0c40def2d to 0x00007fc0c40def34 were rewritten.

0x00007fc0c40deeeb <+427>: syscall 0x00007fc0c40deeed <+429>: jmp 0x7fc0c40def2f <__pthread_cond_broadcast+495> 0x00007fc0c40deeef <+431>: mov (%r9),%eax 0x00007fc0c40deef2 <+434>: data16 data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) 0x00007fc0c40def00 <+448>: mov %eax,%ecx 0x00007fc0c40def02 <+450>: and $0xfffffffc,%ecx 0x00007fc0c40def05 <+453>: lock cmpxchg %ecx,(%r9) 0x00007fc0c40def0a <+458>: jne 0x7fc0c40def00 <__pthread_cond_broadcast+448> 0x00007fc0c40def0c <+460>: and $0x3,%eax 0x00007fc0c40def0f <+463>: cmp $0x2,%eax 0x00007fc0c40def12 <+466>: mov -0x2c(%rbp),%esi 0x00007fc0c40def15 <+469>: jne 0x7fc0c40def3b <__pthread_cond_broadcast+507> 0x00007fc0c40def17 <+471>: xor $0x81,%esi 0x00007fc0c40def1d <+477>: mov $0xca,%eax 0x00007fc0c40def22 <+482>: mov %r9,%rdi 0x00007fc0c40def25 <+485>: mov $0x1,%edx 0x00007fc0c40def2a <+490>: xor %r10d,%r10d 0x00007fc0c40def2d <+493>: jmpq 0x7fc0c40cdcbe 0x00007fc0c40def32 <+498>: nop 0x00007fc0c40def33 <+499>: nop 0x00007fc0c40def34 <+500>: nop => 0x00007fc0c40def35 <+501>: jae 0x7fc0c40df012 <__pthread_cond_broadcast+722> 0x00007fc0c40def3b <+507>: xor %eax,%eax 0x00007fc0c40def3d <+509>: add $0x8,%rsp

Then the program executed 0x00007fc0c40deeed a little bit later where the jmp target was 0x7fc0c40def2f. Now 0x7fc0c40def2f was not an instruction any more. I would assume I would get a SIGILL but actually I get a SEGV here.

0x00007fc0c40deeeb <+427>: syscall => 0x00007fc0c40deeed <+429>: jmp 0x7fc0c40def2f <__pthread_cond_broadcast+495> 0x00007fc0c40deeef <+431>: mov (%r9),%eax 0x00007fc0c40deef2 <+434>: data16 data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) 0x00007fc0c40def00 <+448>: mov %eax,%ecx 0x00007fc0c40def02 <+450>: and $0xfffffffc,%ecx 0x00007fc0c40def05 <+453>: lock cmpxchg %ecx,(%r9) 0x00007fc0c40def0a <+458>: jne 0x7fc0c40def00 <__pthread_cond_broadcast+448> 0x00007fc0c40def0c <+460>: and $0x3,%eax 0x00007fc0c40def0f <+463>: cmp $0x2,%eax 0x00007fc0c40def12 <+466>: mov -0x2c(%rbp),%esi 0x00007fc0c40def15 <+469>: jne 0x7fc0c40def3b <__pthread_cond_broadcast+507> 0x00007fc0c40def17 <+471>: xor $0x81,%esi 0x00007fc0c40def1d <+477>: mov $0xca,%eax 0x00007fc0c40def22 <+482>: mov %r9,%rdi 0x00007fc0c40def25 <+485>: mov $0x1,%edx 0x00007fc0c40def2a <+490>: xor %r10d,%r10d 0x00007fc0c40def2d <+493>: jmpq 0x7fc0c40cdcbe 0x00007fc0c40def32 <+498>: nop 0x00007fc0c40def33 <+499>: nop 0x00007fc0c40def34 <+500>: nop 0x00007fc0c40def35 <+501>: jae 0x7fc0c40df012 <__pthread_cond_broadcast+722> 0x00007fc0c40def3b <+507>: xor %eax,%eax 0x00007fc0c40def3d <+509>: add $0x8,%rsp

wmi0 avatar Jun 28 '22 02:06 wmi0

I assume this goes away if you rr record -n?

khuey avatar Jun 28 '22 02:06 khuey

Yes, it goes away after I use rr record -n. Thanks for the workaround solution!

wmi0 avatar Jun 28 '22 03:06 wmi0

What version of rr is this? Does it still reproduce with current master?

rocallahan avatar Jun 28 '22 05:06 rocallahan

This is essentially the same problem as #2842, the interfering branch is 64 bytes before the patched syscall instruction, but our heuristics only look for interfering branches after the patched syscall instruction.

khuey avatar Jun 28 '22 10:06 khuey

I believe I fixed that in https://github.com/rr-debugger/rr/commit/14e3f56724051a4dae79b9cebe0aa877dbeee384

rocallahan avatar Jun 28 '22 11:06 rocallahan

Hmm, so it does. It doesn't appear you made the decoder any smarter. In #2842 I gave up because instructions of the form mov [%rsi/%rdi/%r14/%r15], 0xXX(%rsp) will trigger our heuristic and since %rdi and %rsi are used in the calling convention this is pretty common.

khuey avatar Jun 28 '22 11:06 khuey

Though it appears fine on Firefox startup (the number of PATCH_SYSCALL events is the same before and after that change), so maybe my concern in #2842 was overblown.

khuey avatar Jun 28 '22 11:06 khuey

Thanks for looking at it.

I tried the head version then I run into a different issue:

[FATAL src/RecordSession.cc:1787:handle_signal_event()] (task 3678734 (rec:3678734) at time 146778) -> Assertion false' failed to hold. Can't defer deterministic or internal signal {signo:SIGSEGV,errno:SUCCESS,code:SEGV_MAPERR,addr:0} at ip 0x7f72f51e37a4 Tail of trace dump: { real_time:551532.689859 global_time:146758, event:SCHED' tid:3678960, ticks:80548511 rax:0x10 rbx:0x552b2b6b3808 rcx:0x552b2b6c06a8 rdx:0x552b2b6b37f0 rsi:0x5575c7587e80 rdi:0x552b2b6c06c0 rbp:0x7f72c5d03d30 rsp:0x7f72c5d03cc0 r8:0x1c r9:0x552b2b6c7518 r10:0x552b2b6c7500 r11:0x6fffd6c8 r12:0x552b2b69f978 r13:0x552b2b6c7440 r14:0x69f r15:0xaaaaaaaaaaaaaaab rip:0x5575ca9c8da0 eflags:0x206 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7f72c5d13700 gs_base:0x0 } { real_time:551532.689869 global_time:146759, event:SYSCALL: futex' (state:EXITING_SYSCALL) tid:3678734, ticks:169543 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x189 rdi:0x7f72f4653c88 rbp:0x7f72d8f0cdc0 rsp:0x7f72d8debdf0 r8:0x0 r9:0xffffffffffffffff r10:0x0 r11:0x246 r12:0x0 r13:0x0 r14:0x5575a6c0cee1 r15:0x0 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xca fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.689973 global_time:146760, event:SYSCALLBUF_FLUSH' tid:3678734, ticks:171459 { syscall:'rrcall_rdtsc', ret:0xa1da329, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1db740, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1df01a, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1e0b35, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1e3f2f, size:0x18 } { syscall:'gettid', ret:0x38220e, size:0x10 } { syscall:'getpid', ret:0x3821ab, size:0x10 } { syscall:'rrcall_rdtsc', ret:0xa1edb7a, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1ef01b, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1f091d, size:0x18 } { syscall:'geteuid', ret:0x2bf24, size:0x10 } { syscall:'rrcall_rdtsc', ret:0xa1f9966, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1fb164, size:0x18 } { syscall:'rrcall_rdtsc', ret:0xa1fde42, size:0x18 } } { real_time:551532.689981 global_time:146761, event:SYSCALL: socket' (state:ENTERING_SYSCALL) tid:3678734, ticks:171459 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x1 rdi:0xa rbp:0x7f72d8f0c720 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x0 r15:0x7f72d8f0c740 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x29 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.689986 global_time:146762, event:SYSCALLBUF_RESET' tid:3678734, ticks:171459 } { real_time:551532.690031 global_time:146763, event:SYSCALL: socket' (state:EXITING_SYSCALL) tid:3678734, ticks:171459 rax:0x447 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x1 rdi:0xa rbp:0x7f72d8f0c720 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x0 r15:0x7f72d8f0c740 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x29 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690071 global_time:146764, event:SYSCALL: fcntl' (state:ENTERING_SYSCALL) tid:3678734, ticks:171482 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x3 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x3 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690096 global_time:146765, event:SYSCALL: fcntl' (state:EXITING_SYSCALL) tid:3678734, ticks:171482 rax:0x2 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x3 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x3 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690130 global_time:146766, event:SYSCALL: fcntl' (state:ENTERING_SYSCALL) tid:3678734, ticks:171506 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x802 rsi:0x4 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x4 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690153 global_time:146767, event:SYSCALL: fcntl' (state:EXITING_SYSCALL) tid:3678734, ticks:171506 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x802 rsi:0x4 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x4 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690187 global_time:146768, event:SYSCALL: fcntl' (state:ENTERING_SYSCALL) tid:3678734, ticks:171530 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x1 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x1 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690209 global_time:146769, event:SYSCALL: fcntl' (state:EXITING_SYSCALL) tid:3678734, ticks:171530 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x1 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x1 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690243 global_time:146770, event:SYSCALL: fcntl' (state:ENTERING_SYSCALL) tid:3678734, ticks:171553 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x1 rsi:0x2 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x2 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690265 global_time:146771, event:SYSCALL: fcntl' (state:EXITING_SYSCALL) tid:3678734, ticks:171553 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x1 rsi:0x2 rdi:0x447 rbp:0x0 rsp:0x7f72d8debdc0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0e860 r11:0x246 r12:0x2 r13:0x7f72d8f0cb00 r14:0x447 r15:0x447 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x48 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690300 global_time:146772, event:SYSCALL: setsockopt' (state:ENTERING_SYSCALL) tid:3678734, ticks:171577 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x1600bd62 rsi:0x1 rdi:0x447 rbp:0x7f72d8f0c6d0 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0c6b4 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c740 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x36 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690325 global_time:146773, event:SYSCALL: setsockopt' (state:EXITING_SYSCALL) tid:3678734, ticks:171577 rax:0xffffffffffffffa4 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x1600bd62 rsi:0x1 rdi:0x447 rbp:0x7f72d8f0c6d0 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0c6b4 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c740 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x36 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690363 global_time:146774, event:SYSCALL: getsockname' (state:ENTERING_SYSCALL) tid:3678734, ticks:171614 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x7f72d8f0c55c rsi:0x7f72d8f0c4d8 rdi:0x447 rbp:0x7f72d8f0c560 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0c6b4 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c5d8 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x33 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690393 global_time:146775, event:SYSCALL: getsockname' (state:EXITING_SYSCALL) tid:3678734, ticks:171614 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0x7f72d8f0c55c rsi:0x7f72d8f0c4d8 rdi:0x447 rbp:0x7f72d8f0c560 rsp:0x7f72d8debdf0 r8:0x4 r9:0x552afd000000 r10:0x7f72d8f0c6b4 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c5d8 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x33 fs_base:0x7f72d8f1b700 gs_base:0x0 { tid:3678734, addr:0x7f72d8f0c55c, length:0x4 } { tid:3678734, addr:0x7f72d8f0c4d8, length:0x1c } } { real_time:551532.690428 global_time:146776, event:SYSCALL: setsockopt' (state:ENTERING_SYSCALL) tid:3678734, ticks:171648 rax:0xffffffffffffffda rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0xd rsi:0x1 rdi:0x447 rbp:0x7f72d8f0c5c0 rsp:0x7f72d8debdf0 r8:0x8 r9:0x552afd000000 r10:0x7f72d8f0c590 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c5d8 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x36 fs_base:0x7f72d8f1b700 gs_base:0x0 } { real_time:551532.690451 global_time:146777, event:`SYSCALL: setsockopt' (state:EXITING_SYSCALL) tid:3678734, ticks:171648 rax:0x0 rbx:0x7f72d8debfa0 rcx:0xffffffffffffffff rdx:0xd rsi:0x1 rdi:0x447 rbp:0x7f72d8f0c5c0 rsp:0x7f72d8debdf0 r8:0x8 r9:0x552afd000000 r10:0x7f72d8f0c590 r11:0x246 r12:0x552b3aaef610 r13:0x7f72d8f0cb00 r14:0x447 r15:0x7f72d8f0c5d8 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x36 fs_base:0x7f72d8f1b700 gs_base:0x0 }

wmi0 avatar Jun 28 '22 18:06 wmi0

@wmi0 just to recheck - when you've tried head (maybe pull as there were different changes in the meantime), did you run the tests and everything pass there? If not then it is mostly more useful to inspect those failing before trying to get bigger things to work.

GitMensch avatar Jul 13 '22 05:07 GitMensch

Sorry for the delay here.

I tried the head version then I run into a different issue:

You should get instructions for running the emergency debugger --- a gdb command line you can run. If you run that and do where in gdb, what do you get?

rocallahan avatar Jul 15 '22 23:07 rocallahan