public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Pedro Alves <pedro@palves.net>, gdb-patches@sourceware.org
Subject: Re: [PATCH 0/3] Fix crash if connection drops in scoped_restore_current_thread's ctor
Date: Wed, 22 Jul 2020 15:37:29 -0400	[thread overview]
Message-ID: <55d70953-e032-fe6a-1656-d7ad7080b863@simark.ca> (raw)
In-Reply-To: <af02599a-704b-934b-1153-1ddbf172d252@palves.net>

[-- Attachment #1: Type: text/plain, Size: 9433 bytes --]

On 2020-07-10 7:02 p.m., Pedro Alves wrote:
> On 7/9/20 12:31 AM, Pedro Alves wrote:
>> (I have internet again: found a sim card of a different operator that
>> works.  This will do until the communications tower near me is
>> repaired and get I fiber back...)
>>
>> This series fixes the crashes exposed by the
>> gdb.multi/multi-target.exp testcase when run against an Asan-enabled
>> GDB build, initially reported by Simon here:
>>
>>   https://sourceware.org/pipermail/gdb-patches/2020-July/170222.html
>>
>> The first two patches fix the crashes, and we should probably put them
>> in GDB 10.
>>
>> The last patch is a follow up that avoids swallowing exceptions in
>> scoped_restore_current_thread's dtor that I'm thinking would be a bit
>> too invasive to put in GDB 10, I think it could do with a longer
>> baking period in master.
>>
>> Pedro Alves (3):
>>   Fix crash if connection drops in scoped_restore_current_thread's ctor,
>>     part 1
>>   Fix crash if connection drops in scoped_restore_current_thread's ctor,
>>     part 2
>>   Make scoped_restore_current_thread's cdtors exception free (RFC)
> 
> I've now merged patches 1 and 2.  Patch 3 will wait until after the branch
> is cut.
> 

I now see this other ASan failure when running gdb.multi/multi-target.exp, it's in the
attached asan.log.  There are colors, so it's easier to read if you "cat" it in your
terminal.  It looks familiar, because it happens in scoped_restore_current_thread's dtor
(not ctor), but maybe it just happens to be there but could happen at any other point.

It happens when starting test_continue with non-stop on, just after having completed
test_continue with non-stop off.  It's when GDB does "monitor exit".

Unfortunately, the "freed by thread T0 here" stack trace is again truncated, probably
because the stack is too deep for the portion of the stack ASan captures.  But I managed
to attach to GDB with GDB using gdb_interact and capture it (I broke on unpush_and_perror),
here's the equivalent GDB backtrace:

#0  xfree<void> (ptr=0x621004a5d900) at /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-utils.h:63
#1  0x0000000001626260 in call_freefun (h=0x20f8da0 <frame_cache_obstack>, old_chunk=0x621004a5d900) at /home/smarchi/src/binutils-gdb/libiberty/obstack.c:103
#2  0x0000000001626c87 in _obstack_free (h=0x20f8da0 <frame_cache_obstack>, obj=0x0) at /home/smarchi/src/binutils-gdb/libiberty/obstack.c:280
#3  0x000000000098ae26 in reinit_frame_cache () at /home/smarchi/src/binutils-gdb/gdb/frame.c:1856
#4  0x0000000001098adf in switch_to_no_thread () at /home/smarchi/src/binutils-gdb/gdb/thread.c:1301
#5  0x0000000000acf544 in switch_to_inferior_no_thread (inf=0x615000244d00) at /home/smarchi/src/binutils-gdb/gdb/inferior.c:626
#6  0x0000000000e7c38c in remote_unpush_target (target=0x6170000c0c00) at /home/smarchi/src/binutils-gdb/gdb/remote.c:5521
#7  0x0000000000e92db6 in unpush_and_perror (target=0x6170000c0c00, string=0x191d400 "Remote communication error.  Target disconnected.") at /home/smarchi/src/binutils-gdb/gdb/remote.c:9101
#8  0x0000000000e930c7 in remote_target::readchar (this=0x6170000c0c00, timeout=2) at /home/smarchi/src/binutils-gdb/gdb/remote.c:9141
#9  0x0000000000e9576f in remote_target::getpkt_or_notif_sane_1 (this=0x6170000c0c00, buf=0x6170000c0c18, forever=0, expecting_notif=0, is_notif=0x0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:9683
#10 0x0000000000e961c9 in remote_target::getpkt_sane (this=0x6170000c0c00, buf=0x6170000c0c18, forever=0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:9790
#11 0x0000000000e95545 in remote_target::getpkt (this=0x6170000c0c00, buf=0x6170000c0c18, forever=0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:9623
#12 0x0000000000e91ba3 in remote_target::remote_read_bytes_1 (this=0x6170000c0c00, memaddr=0x7ffff78bc38d, myaddr=0x7fff7dca59a0 "", len_units=1, unit_size=1, xfered_len_units=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:8860
#13 0x0000000000e9240c in remote_target::remote_read_bytes (this=0x6170000c0c00, memaddr=0x7ffff78bc38d, myaddr=0x7fff7dca59a0 "", len=1, unit_size=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:8987
#14 0x0000000000e9b821 in remote_target::xfer_partial (this=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, annex=0x0, readbuf=0x7fff7dca59a0 "", writebuf=0x0, offset=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/remote.c:10987
#15 0x000000000104fd3a in raw_memory_xfer_partial (ops=0x6170000c0c00, readbuf=0x7fff7dca59a0 "", writebuf=0x0, memaddr=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/target.c:918
#16 0x0000000001050425 in memory_xfer_partial_1 (ops=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, readbuf=0x7fff7dca59a0 "", writebuf=0x0, memaddr=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/target.c:1047
#17 0x0000000001050608 in memory_xfer_partial (ops=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, readbuf=0x7fff7dca59a0 "", writebuf=0x0, memaddr=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/target.c:1076
#18 0x0000000001050b92 in target_xfer_partial (ops=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, annex=0x0, readbuf=0x7fff7dca59a0 "", writebuf=0x0, offset=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/target.c:1133
#19 0x0000000001051a7b in target_read_partial (ops=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, annex=0x0, buf=0x7fff7dca59a0 "", offset=140737346519949, len=1, xfered_len=0x7fff7dca58b0) at /home/smarchi/src/binutils-gdb/gdb/target.c:1379
#20 0x0000000001051c59 in target_read (ops=0x6170000c0c00, object=TARGET_OBJECT_MEMORY, annex=0x0, buf=0x7fff7dca59a0 "", offset=140737346519949, len=1) at /home/smarchi/src/binutils-gdb/gdb/target.c:1419
#21 0x0000000001051178 in target_read_memory (memaddr=0x7ffff78bc38d, myaddr=0x7fff7dca59a0 "", len=1) at /home/smarchi/src/binutils-gdb/gdb/target.c:1222
#22 0x00000000004b4731 in amd64_stack_frame_destroyed_p (gdbarch=0x6210027e8510, pc=0x7ffff78bc38d) at /home/smarchi/src/binutils-gdb/gdb/amd64-tdep.c:2909
#23 0x00000000004b4822 in amd64_epilogue_frame_sniffer (self=0x169df00 <amd64_epilogue_frame_unwind>, this_frame=0x621004a5d9e0, this_prologue_cache=0x621004a5d9f8) at /home/smarchi/src/binutils-gdb/gdb/amd64-tdep.c:2924
#24 0x0000000000981048 in frame_unwind_try_unwinder (this_frame=0x621004a5d9e0, this_cache=0x621004a5d9f8, unwinder=0x169df00 <amd64_epilogue_frame_unwind>) at /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:128
#25 0x000000000098126d in frame_unwind_find_by_frame (this_frame=0x621004a5d9e0, this_cache=0x621004a5d9f8) at /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:186
#26 0x0000000000983c9d in compute_frame_id (fi=0x621004a5d9e0) at /home/smarchi/src/binutils-gdb/gdb/frame.c:546
#27 0x0000000000984167 in get_frame_id (fi=0x621004a5d9e0) at /home/smarchi/src/binutils-gdb/gdb/frame.c:582
#28 0x0000000001098eef in restore_selected_frame (a_frame_id=..., frame_level=0) at /home/smarchi/src/binutils-gdb/gdb/thread.c:1355
#29 0x00000000010992f8 in scoped_restore_current_thread::restore (this=0x7fff7dca5f30) at /home/smarchi/src/binutils-gdb/gdb/thread.c:1411
#30 0x0000000001099355 in scoped_restore_current_thread::~scoped_restore_current_thread (this=0x7fff7dca5f30, __in_chrg=<optimized out>) at /home/smarchi/src/binutils-gdb/gdb/thread.c:1420
#31 0x0000000000aeab84 in do_target_wait (wait_ptid=..., ecs=0x7fff7dca6290, options=1) at /home/smarchi/src/binutils-gdb/gdb/infrun.c:3670
#32 0x0000000000aecbe3 in fetch_inferior_event () at /home/smarchi/src/binutils-gdb/gdb/infrun.c:3965
#33 0x0000000000aa8097 in inferior_event_handler (event_type=INF_REG_EVENT) at /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
#34 0x0000000000eab8b7 in remote_async_inferior_event_handler (data=0x6170000d6a00) at /home/smarchi/src/binutils-gdb/gdb/remote.c:14166
#35 0x00000000004ca110 in check_async_event_handlers () at /home/smarchi/src/binutils-gdb/gdb/async-event.c:295
#36 0x00000000015bef41 in gdb_do_one_event () at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:194
#37 0x0000000000bfd50e in start_event_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:356
#38 0x0000000000bfd816 in captured_command_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:416
#39 0x0000000000c00c25 in captured_main (data=0x7fff7dca65d0) at /home/smarchi/src/binutils-gdb/gdb/main.c:1253
#40 0x0000000000c00cb5 in gdb_main (args=0x7fff7dca65d0) at /home/smarchi/src/binutils-gdb/gdb/main.c:1268
#41 0x0000000000414d9e in main (argc=5, argv=0x7fff7dca6738) at /home/smarchi/src/binutils-gdb/gdb/gdb.c:32


The problem seems to be:

- We create a new frame_info object in restore_selected_frame (by calling find_relative_frame)
- The frame is allocated on the frame_cache_obstack
- In frame_unwind_try_unwinder, we try to find an unwinder for that frame
- While trying unwinders, memory read fails because the remote target closes, because of "monitor exit"
- That calls reinit_frame_cache (as shown above), which resets frame_cache_obstack
- When handling the exception in frame_unwind_try_unwinder, we try to set some things on the frame_info
  object (like *this_cache, which in fact tries to write into frame_info::prologue_cache), but the
  frame_info object is no more, it went away with the obstack.

Simon

[-- Attachment #2: asan.log --]
[-- Type: text/x-log, Size: 12922 bytes --]

^[[1m^[[31m==4074==ERROR: AddressSanitizer: heap-use-after-free on address 0x621004a4fdf8 at pc 0x0000009810b3 bp 0x7fff38bbca90 sp 0x7fff38bbca80
^[[1m^[[0m^[[1m^[[34mWRITE of size 8 at 0x621004a4fdf8 thread T0^[[1m^[[0m
    #0 0x9810b2 in frame_unwind_try_unwinder /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:134
    #1 0x98126c in frame_unwind_find_by_frame(frame_info*, void**) /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:186
    #2 0x983c9c in compute_frame_id /home/smarchi/src/binutils-gdb/gdb/frame.c:546
    #3 0x984166 in get_frame_id(frame_info*) /home/smarchi/src/binutils-gdb/gdb/frame.c:582
    #4 0x1098eee in restore_selected_frame /home/smarchi/src/binutils-gdb/gdb/thread.c:1355
    #5 0x10992f7 in scoped_restore_current_thread::restore() /home/smarchi/src/binutils-gdb/gdb/thread.c:1411
    #6 0x1099354 in scoped_restore_current_thread::~scoped_restore_current_thread() /home/smarchi/src/binutils-gdb/gdb/thread.c:1420
    #7 0xaeab83 in do_target_wait /home/smarchi/src/binutils-gdb/gdb/infrun.c:3670
    #8 0xaecbe2 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:3965
    #9 0xaa8096 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
    #10 0xeab8b6 in remote_async_inferior_event_handler /home/smarchi/src/binutils-gdb/gdb/remote.c:14166
    #11 0x4ca10f in check_async_event_handlers() /home/smarchi/src/binutils-gdb/gdb/async-event.c:295
    #12 0x15bef40 in gdb_do_one_event() /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:194
    #13 0xbfd50d in start_event_loop /home/smarchi/src/binutils-gdb/gdb/main.c:356
    #14 0xbfd815 in captured_command_loop /home/smarchi/src/binutils-gdb/gdb/main.c:416
    #15 0xc00c24 in captured_main /home/smarchi/src/binutils-gdb/gdb/main.c:1253
    #16 0xc00cb4 in gdb_main(captured_main_args*) /home/smarchi/src/binutils-gdb/gdb/main.c:1268
    #17 0x414d9d in main /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
    #18 0x7fc78984e83f in __libc_start_main ../csu/libc-start.c:291
    #19 0x414b98 in _start (/home/smarchi/build/binutils-gdb/gdb/gdb+0x414b98)

^[[1m^[[32m0x621004a4fdf8 is located 248 bytes inside of 4064-byte region [0x621004a4fd00,0x621004a50ce0)
^[[1m^[[0m^[[1m^[[35mfreed by thread T0 here:^[[1m^[[0m
    #0 0x7fc78c385c7f in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10bc7f)
    #1 0x98f9f6 in xfree<void> /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-utils.h:62
    #2 0x162625f in call_freefun /home/smarchi/src/binutils-gdb/libiberty/obstack.c:103
    #3 0x1626c86 in _obstack_free /home/smarchi/src/binutils-gdb/libiberty/obstack.c:280
    #4 0x98ae25 in reinit_frame_cache() /home/smarchi/src/binutils-gdb/gdb/frame.c:1856
    #5 0x1098ade in switch_to_no_thread() /home/smarchi/src/binutils-gdb/gdb/thread.c:1301
    #6 0xacf543 in switch_to_inferior_no_thread(inferior*) /home/smarchi/src/binutils-gdb/gdb/inferior.c:626
    #7 0xe7c38b in remote_unpush_target /home/smarchi/src/binutils-gdb/gdb/remote.c:5521
    #8 0xe92db5 in unpush_and_perror /home/smarchi/src/binutils-gdb/gdb/remote.c:9101
    #9 0xe930c6 in remote_target::readchar(int) /home/smarchi/src/binutils-gdb/gdb/remote.c:9141
    #10 0xe9576e in remote_target::getpkt_or_notif_sane_1(std::vector<char, gdb::default_init_allocator<char, std::allocator<char> > >*, int, int, int*) /home/smarchi/src/binutils-gdb/gdb/remote.c:9683
    #11 0xe961c8 in remote_target::getpkt_sane(std::vector<char, gdb::default_init_allocator<char, std::allocator<char> > >*, int) /home/smarchi/src/binutils-gdb/gdb/remote.c:9790
    #12 0xe95544 in remote_target::getpkt(std::vector<char, gdb::default_init_allocator<char, std::allocator<char> > >*, int) /home/smarchi/src/binutils-gdb/gdb/remote.c:9623
    #13 0xe91ba2 in remote_target::remote_read_bytes_1(unsigned long, unsigned char*, unsigned long, int, unsigned long*) /home/smarchi/src/binutils-gdb/gdb/remote.c:8860
    #14 0xe9240b in remote_target::remote_read_bytes(unsigned long, unsigned char*, unsigned long, int, unsigned long*) /home/smarchi/src/binutils-gdb/gdb/remote.c:8987
    #15 0xe9b820 in remote_target::xfer_partial(target_object, char const*, unsigned char*, unsigned char const*, unsigned long, unsigned long, unsigned long*) /home/smarchi/src/binutils-gdb/gdb/remote.c:10987
    #16 0x104fd39 in raw_memory_xfer_partial(target_ops*, unsigned char*, unsigned char const*, unsigned long, long, unsigned long*) /home/smarchi/src/binutils-gdb/gdb/target.c:918
    #17 0x1050424 in memory_xfer_partial_1 /home/smarchi/src/binutils-gdb/gdb/target.c:1047
    #18 0x1050607 in memory_xfer_partial /home/smarchi/src/binutils-gdb/gdb/target.c:1076
    #19 0x1050b91 in target_xfer_partial(target_ops*, target_object, char const*, unsigned char*, unsigned char const*, unsigned long, unsigned long, unsigned long*) /home/smarchi/src/binutils-gdb/gdb/target.c:1133
    #20 0x1051a7a in target_read_partial /home/smarchi/src/binutils-gdb/gdb/target.c:1379
    #21 0x1051c58 in target_read(target_ops*, target_object, char const*, unsigned char*, unsigned long, long) /home/smarchi/src/binutils-gdb/gdb/target.c:1419
    #22 0x1051177 in target_read_memory(unsigned long, unsigned char*, long) /home/smarchi/src/binutils-gdb/gdb/target.c:1222
    #23 0x4b4730 in amd64_stack_frame_destroyed_p /home/smarchi/src/binutils-gdb/gdb/amd64-tdep.c:2909
    #24 0x4b4821 in amd64_epilogue_frame_sniffer /home/smarchi/src/binutils-gdb/gdb/amd64-tdep.c:2924
    #25 0x981047 in frame_unwind_try_unwinder /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:128
    #26 0x98126c in frame_unwind_find_by_frame(frame_info*, void**) /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:186
    #27 0x983c9c in compute_frame_id /home/smarchi/src/binutils-gdb/gdb/frame.c:546
    #28 0x984166 in get_frame_id(frame_info*) /home/smarchi/src/binutils-gdb/gdb/frame.c:582
    #29 0x1098eee in restore_selected_frame /home/smarchi/src/binutils-gdb/gdb/thread.c:1355

^[[1m^[[35mpreviously allocated by thread T0 here:^[[1m^[[0m
    #0 0x7fc78c386078 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10c078)
    #1 0x4a1ad3 in xmalloc /home/smarchi/src/binutils-gdb/gdb/alloc.c:60
    #2 0x162616d in call_chunkfun /home/smarchi/src/binutils-gdb/libiberty/obstack.c:94
    #3 0x1626318 in _obstack_begin_worker /home/smarchi/src/binutils-gdb/libiberty/obstack.c:141
    #4 0x16265cb in _obstack_begin /home/smarchi/src/binutils-gdb/libiberty/obstack.c:164
    #5 0x98ae44 in reinit_frame_cache() /home/smarchi/src/binutils-gdb/gdb/frame.c:1857
    #6 0x1098b4c in switch_to_thread(thread_info*) /home/smarchi/src/binutils-gdb/gdb/thread.c:1316
    #7 0x1099146 in scoped_restore_current_thread::restore() /home/smarchi/src/binutils-gdb/gdb/thread.c:1399
    #8 0x1099354 in scoped_restore_current_thread::~scoped_restore_current_thread() /home/smarchi/src/binutils-gdb/gdb/thread.c:1420
    #9 0xaeab83 in do_target_wait /home/smarchi/src/binutils-gdb/gdb/infrun.c:3670
    #10 0xaecbe2 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:3965
    #11 0xaa8096 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
    #12 0xeab8b6 in remote_async_inferior_event_handler /home/smarchi/src/binutils-gdb/gdb/remote.c:14166
    #13 0x4ca10f in check_async_event_handlers() /home/smarchi/src/binutils-gdb/gdb/async-event.c:295
    #14 0x15bef40 in gdb_do_one_event() /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:194
    #15 0xbfd50d in start_event_loop /home/smarchi/src/binutils-gdb/gdb/main.c:356
    #16 0xbfd815 in captured_command_loop /home/smarchi/src/binutils-gdb/gdb/main.c:416
    #17 0xc00c24 in captured_main /home/smarchi/src/binutils-gdb/gdb/main.c:1253
    #18 0xc00cb4 in gdb_main(captured_main_args*) /home/smarchi/src/binutils-gdb/gdb/main.c:1268
    #19 0x414d9d in main /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
    #20 0x7fc78984e83f in __libc_start_main ../csu/libc-start.c:291

SUMMARY: AddressSanitizer: heap-use-after-free /home/smarchi/src/binutils-gdb/gdb/frame-unwind.c:134 in frame_unwind_try_unwinder
Shadow bytes around the buggy address:
  0x0c4280941f60: ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m
  0x0c4280941f70: ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m
  0x0c4280941f80: ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m
  0x0c4280941f90: ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m ^[[1m^[[31mfa^[[1m^[[0m
  0x0c4280941fa0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
=>0x0c4280941fb0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m[^[[1m^[[35mfd^[[1m^[[0m]
  0x0c4280941fc0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
  0x0c4280941fd0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
  0x0c4280941fe0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
  0x0c4280941ff0: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
  0x0c4280942000: ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m ^[[1m^[[35mfd^[[1m^[[0m
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           ^[[1m^[[0m00^[[1m^[[0m
  Partially addressable: ^[[1m^[[0m01^[[1m^[[0m ^[[1m^[[0m02^[[1m^[[0m ^[[1m^[[0m03^[[1m^[[0m ^[[1m^[[0m04^[[1m^[[0m ^[[1m^[[0m05^[[1m^[[0m ^[[1m^[[0m06^[[1m^[[0m ^[[1m^[[0m07^[[1m^[[0m 
  Heap left redzone:       ^[[1m^[[31mfa^[[1m^[[0m
  Freed heap region:       ^[[1m^[[35mfd^[[1m^[[0m
  Stack left redzone:      ^[[1m^[[31mf1^[[1m^[[0m
  Stack mid redzone:       ^[[1m^[[31mf2^[[1m^[[0m
  Stack right redzone:     ^[[1m^[[31mf3^[[1m^[[0m
  Stack after return:      ^[[1m^[[35mf5^[[1m^[[0m
  Stack use after scope:   ^[[1m^[[35mf8^[[1m^[[0m
  Global redzone:          ^[[1m^[[31mf9^[[1m^[[0m
  Global init order:       ^[[1m^[[36mf6^[[1m^[[0m
  Poisoned by user:        ^[[1m^[[34mf7^[[1m^[[0m
  Container overflow:      ^[[1m^[[34mfc^[[1m^[[0m
  Array cookie:            ^[[1m^[[31mac^[[1m^[[0m
  Intra object redzone:    ^[[1m^[[33mbb^[[1m^[[0m
  ASan internal:           ^[[1m^[[33mfe^[[1m^[[0m
  Left alloca redzone:     ^[[1m^[[34mca^[[1m^[[0m
  Right alloca redzone:    ^[[1m^[[34mcb^[[1m^[[0m
  Shadow gap:              ^[[1m^[[0mcc^[[1m^[[0m
==4074==ABORTING

  reply	other threads:[~2020-07-22 19:37 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08 23:31 Pedro Alves
2020-07-08 23:31 ` [PATCH 1/3] Fix crash if connection drops in scoped_restore_current_thread's ctor, part 1 Pedro Alves
2020-07-09  3:17   ` Simon Marchi
2020-07-09 10:51     ` Pedro Alves
2020-07-09 14:13       ` Simon Marchi
2020-07-08 23:31 ` [PATCH 2/3] Fix crash if connection drops in scoped_restore_current_thread's ctor, part 2 Pedro Alves
2020-07-09  3:31   ` Simon Marchi
2020-07-09 11:12     ` Pedro Alves
2020-07-09 14:16       ` Simon Marchi
2020-07-09 17:23         ` Pedro Alves
2020-07-09 17:28           ` Simon Marchi
2020-07-08 23:31 ` [PATCH 3/3] Make scoped_restore_current_thread's cdtors exception free (RFC) Pedro Alves
2020-07-09  3:49   ` Simon Marchi
2020-07-09 11:56     ` Pedro Alves
2020-07-09 12:09       ` Pedro Alves
2020-07-09 15:40       ` Simon Marchi
2020-07-09 22:22         ` Pedro Alves
2020-07-10  2:55           ` Simon Marchi
2020-10-30  1:13             ` Pedro Alves
2020-10-30  1:37               ` [pushed] Move lookup_selected_frame to frame.c Pedro Alves
2020-10-30  7:44               ` [PATCH 3/3] Make scoped_restore_current_thread's cdtors exception free (RFC) Aktemur, Tankut Baris
2020-10-30 11:32                 ` Pedro Alves
2020-10-31 14:35                   ` [PATCH] Fix frame cycle detection (Re: [PATCH 3/3] Make scoped_restore_current_thread's cdtors exception free (RFC)) Pedro Alves
2020-11-09 14:05                     ` Aktemur, Tankut Baris
2020-11-16 13:48                       ` Tom de Vries
2020-11-16 14:57                         ` Pedro Alves
2020-07-10 23:02 ` [PATCH 0/3] Fix crash if connection drops in scoped_restore_current_thread's ctor Pedro Alves
2020-07-22 19:37   ` Simon Marchi [this message]
2020-07-22 20:37     ` Pedro Alves
2020-07-22 20:47       ` Simon Marchi
2020-07-23 15:28         ` [pushed] Don't touch frame_info objects if frame cache was reinitialized (was: Re: [PATCH 0/3] Fix crash if connection drops in scoped_restore_current_thread's ctor) Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55d70953-e032-fe6a-1656-d7ad7080b863@simark.ca \
    --to=simark@simark.ca \
    --cc=gdb-patches@sourceware.org \
    --cc=pedro@palves.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).