[lldb-dev] [Bug 36430] New: Crash after 'breakpoint delete' and 'process continue'
via lldb-dev
lldb-dev at lists.llvm.org
Sun Feb 18 23:37:51 PST 2018
https://bugs.llvm.org/show_bug.cgi?id=36430
Bug ID: 36430
Summary: Crash after 'breakpoint delete' and 'process continue'
Product: lldb
Version: 6.0
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: lldb-dev at lists.llvm.org
Reporter: dantipov at nvidia.com
CC: llvm-bugs at lists.llvm.org
Created attachment 19893
--> https://bugs.llvm.org/attachment.cgi?id=19893&action=edit
Sample to debug under lldb
$ gdb -q /home/dantipov/.local/llvm-6.0.0/bin/lldb
Reading symbols from /home/dantipov/.local/llvm-6.0.0/bin/lldb...done.
(gdb) set print thread-events off
(gdb) r t-thread2
Starting program: /home/dantipov/.local/llvm-6.0.0/bin/lldb t-thread2
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
(lldb) target create "t-thread2"
Current executable set to 't-thread2' (x86_64).
(lldb) version
lldb version 6.0.0 (http://llvm.org/svn/llvm-project/lldb/tags/RELEASE_600/rc2
revision 324869)
clang revision 324869
llvm revision 324869
(lldb) breakpoint set -n g
Breakpoint 1: where = t-thread2`g(int) + 7 at t-thread2.cc:9, address =
0x0000000000400d0e
(lldb) run
Detaching after fork from child process 5384.
Process 5387 launched: '/home/dantipov/tmp/t-thread2' (x86_64)
Process 5387 stopped
* thread #2, name = 't-thread2', stop reason = breakpoint 1.1
frame #0: 0x0000000000400d0e t-thread2`g(v=0) at t-thread2.cc:9
6 g (int v)
7 {
8 (void) v;
-> 9 }
10
11 void
12 f (int v)
(lldb) process continue
Process 5387 resuming
Process 5387 stopped
* thread #3, name = 't-thread2', stop reason = breakpoint 1.1
frame #0: 0x0000000000400d0e t-thread2`g(v=1) at t-thread2.cc:9
6 g (int v)
7 {
8 (void) v;
-> 9 }
10
11 void
12 f (int v)
(lldb) breakpoint delete
About to delete all breakpoints, do you want to do that?: [Y/n] Y
All breakpoints removed. (1 breakpoint)
(lldb) process continue
Process 5387 resuming
Thread 16 "intern-state" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc9ffb700 (LWP 5388)]
0x00007ffff02b35d8 in std::__uniq_ptr_impl<lldb_private::ThreadSpec,
std::default_delete<lldb_private::ThreadSpec> >::_M_ptr (this=0x28)
at /usr/include/c++/7/bits/unique_ptr.h:147
147 pointer _M_ptr() const { return std::get<0>(_M_t); }
(gdb) bt
#0 0x00007ffff02b35d8 in std::__uniq_ptr_impl<lldb_private::ThreadSpec,
std::default_delete<lldb_private::ThreadSpec> >::_M_ptr (this=0x28)
at /usr/include/c++/7/bits/unique_ptr.h:147
#1 0x00007ffff02b2ae0 in std::unique_ptr<lldb_private::ThreadSpec,
std::default_delete<lldb_private::ThreadSpec> >::get (this=0x28) at
/usr/include/c++/7/bits/unique_ptr.h:337
#2 0x00007ffff02b1682 in
lldb_private::BreakpointOptions::GetThreadSpecNoCreate (this=0x0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointOptions.cpp:524
#3 0x00007ffff02a7296 in lldb_private::BreakpointLocation::ValidForThisThread
(this=0x61d980, thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointLocation.cpp:387
#4 0x00007ffff02a9a4d in
lldb_private::BreakpointLocationCollection::ValidForThisThread (this=0x66dd90,
thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp:152
#5 0x00007ffff02c1bfa in lldb_private::BreakpointSite::ValidForThisThread
(this=0x66dd40, thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointSite.cpp:146
#6 0x00007ffff0987714 in
lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo
(this=0x64bdc0, tid=5486,
expedited_register_map=std::map with 24 elements = {...}, signo=5 '\005',
thread_name="t-thread2", reason="breakpoint", description="", exc_type=0,
exc_data=std::vector of length 0, capacity 0,
thread_dispatch_qaddr=18446744073709551615, queue_vars_valid=false,
associated_with_dispatch_queue=lldb_private::eLazyBoolCalculate,
dispatch_queue_t=18446744073709551615, queue_name="",
queue_kind=lldb::eQueueKindUnknown, queue_serial=0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:1880
#7 0x00007ffff098bb21 in
lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo
(this=0x64bdc0, stop_packet=...)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:2371
#8 0x00007ffff098bc80 in
lldb_private::process_gdb_remote::ProcessGDBRemote::RefreshStateAfterStop
(this=0x64bdc0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:2407
#9 0x00007ffff05b45ae in lldb_private::Process::ShouldBroadcastEvent
(this=0x64bdc0, event_ptr=0x7fffc4001230)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3658
#10 0x00007ffff05b4f3f in lldb_private::Process::HandlePrivateEvent
(this=0x64bdc0, event_sp=std::shared_ptr (count 2, weak 0) 0x7fffc4001230)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3907
#11 0x00007ffff05b577b in lldb_private::Process::RunPrivateStateThread
(this=0x64bdc0, is_secondary_thread=false)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:4106
#12 0x00007ffff05b52d4 in lldb_private::Process::PrivateStateThread
(arg=0x6730d0) at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3999
#13 0x00007ffff042b509 in
lldb_private::HostNativeThreadBase::ThreadCreateTrampoline (arg=0x6733d0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Host/common/HostNativeThreadBase.cpp:66
#14 0x00007ffff7bbd61b in start_thread (arg=0x7fffc9ffb700) at
pthread_create.c:465
#15 0x00007fffee79598f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) bt full
#0 0x00007ffff02b35d8 in std::__uniq_ptr_impl<lldb_private::ThreadSpec,
std::default_delete<lldb_private::ThreadSpec> >::_M_ptr (this=0x28)
at /usr/include/c++/7/bits/unique_ptr.h:147
No locals.
#1 0x00007ffff02b2ae0 in std::unique_ptr<lldb_private::ThreadSpec,
std::default_delete<lldb_private::ThreadSpec> >::get (this=0x28) at
/usr/include/c++/7/bits/unique_ptr.h:337
No locals.
#2 0x00007ffff02b1682 in
lldb_private::BreakpointOptions::GetThreadSpecNoCreate (this=0x0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointOptions.cpp:524
No locals.
#3 0x00007ffff02a7296 in lldb_private::BreakpointLocation::ValidForThisThread
(this=0x61d980, thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointLocation.cpp:387
No locals.
#4 0x00007ffff02a9a4d in
lldb_private::BreakpointLocationCollection::ValidForThisThread (this=0x66dd90,
thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp:152
guard = {_M_device = @0x66dda8}
pos = std::shared_ptr (count 1, weak 1) 0x61d980
begin = std::shared_ptr (count 1, weak 1) 0x61d980
end = <error reading variable: Cannot access memory at address 0x59>
#5 0x00007ffff02c1bfa in lldb_private::BreakpointSite::ValidForThisThread
(this=0x66dd40, thread=0x7fffb8003a30)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Breakpoint/BreakpointSite.cpp:146
guard = {_M_device = @0x66ddd0}
#6 0x00007ffff0987714 in
lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo
(this=0x64bdc0, tid=5486,
expedited_register_map=std::map with 24 elements = {...}, signo=5 '\005',
thread_name="t-thread2", reason="breakpoint", description="", exc_type=0,
exc_data=std::vector of length 0, capacity 0,
thread_dispatch_qaddr=18446744073709551615, queue_vars_valid=false,
associated_with_dispatch_queue=lldb_private::eLazyBoolCalculate,
dispatch_queue_t=18446744073709551615, queue_name="",
queue_kind=lldb::eQueueKindUnknown, queue_serial=0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:1880
pc = 4197646
bp_site_sp = std::shared_ptr (count 3, weak 1) 0x66dd40
handled = true
did_exec = false
memory_thread_sp = std::shared_ptr (count 4, weak 1) 0x7fffb8003a30
gdb_thread = 0x7fffb8003a30
iter = 5486
thread_sp = std::shared_ptr (count 4, weak 1) 0x7fffb8003a30
#7 0x00007ffff098bb21 in
lldb_private::process_gdb_remote::ProcessGDBRemote::SetThreadStopInfo
(this=0x64bdc0, stop_packet=...)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:2371
value = {static npos = 18446744073709551615, Data = 0x7fffc4003545
"breakpoint;", Length = 10}
reason = "breakpoint"
associated_with_dispatch_queue = lldb_private::eLazyBoolCalculate
signo = 5 '\005'
exc_type = 0
exc_data = std::vector of length 0, capacity 0
thread_dispatch_qaddr = 18446744073709551615
dispatch_queue_t = 18446744073709551615
queue_name = ""
queue_serial_number = 0
expedited_register_map = std::map with 24 elements = {[0] = '0'
<repeats 16 times>, [1] = "110d4", '0' <repeats 11 times>, [2] =
"504f2df7ff7f0000",
[3] = '0' <repeats 16 times>, [4] = '0' <repeats 16 times>, [5] =
"60ededf6ff7f0000", [6] = "90ededf6ff7f0000", [7] = "90ededf6ff7f0000", [8] =
"b4d12bf7ff7f0000",
[9] = "20d22bf7ff7f0000", [10] = "07", '0' <repeats 14 times>, [11] =
'0' <repeats 16 times>, [12] = "c0efedf6ff7f0000", [13] = '0' <repeats 16
times>,
[14] = "a0e0ffffff7f0000", [15] = "c0f9edf6ff7f0000", [16] = "0e0d4",
'0' <repeats 11 times>, [17] = "4602", '0' <repeats 12 times>,
[18] = "33", '0' <repeats 14 times>, [19] = '0' <repeats 16 times>,
[20] = '0' <repeats 16 times>, [21] = "2b", '0' <repeats 14 times>, [22] = '0'
<repeats 16 times>,
[23] = '0' <repeats 16 times>}
thread_sp = std::shared_ptr (count 4, weak 1) 0x7fffb8003a30
tid = 5486
key = {static npos = 18446744073709551615, Data = 0x7fffc400353e
"reason:breakpoint;", Length = 6}
queue_kind = lldb::eQueueKindUnknown
stop_id = 7
thread_name = "t-thread2"
description = ""
queue_vars_valid = false
stop_type = 84 'T'
#8 0x00007ffff098bc80 in
lldb_private::process_gdb_remote::ProcessGDBRemote::RefreshStateAfterStop
(this=0x64bdc0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp:2407
stop_info = {<StringExtractor> = {_vptr.StringExtractor =
0x7ffff7622c18 <vtable for StringExtractorGDBRemote+16>,
m_packet =
"T05thread:156e;hexname:742d74687265616432;threads:150b,156e,156f;jstopinfo:5b7b226e616d65223a22742d74687265616432222c22746964223a353338377d2c7b226e616d65223a22742d74687265616432222c22726561736f6e223a2"...,
m_index = 18446744073709551615}, m_validator = 0x0, m_validator_baton =
0x64c380}
i = 0
guard = {_M_device = @0x64cd28}
nItems = 1
guard = {_M_device = @0x64bfd8}
#9 0x00007ffff05b45ae in lldb_private::Process::ShouldBroadcastEvent
(this=0x64bdc0, event_ptr=0x7fffc4001230)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3658
state = lldb::eStateStopped
return_value = true
log = 0x0
#10 0x00007ffff05b4f3f in lldb_private::Process::HandlePrivateEvent
(this=0x64bdc0, event_sp=std::shared_ptr (count 2, weak 0) 0x7fffc4001230)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3907
log = 0x0
new_state = lldb::eStateStopped
should_broadcast = false
__FUNCTION__ = "HandlePrivateEvent"
#11 0x00007ffff05b577b in lldb_private::Process::RunPrivateStateThread
(this=0x64bdc0, is_secondary_thread=false)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:4106
event_sp = std::shared_ptr (count 2, weak 0) 0x7fffc4001230
internal_state = lldb::eStateStopped
control_only = false
log = 0x0
__FUNCTION__ = "RunPrivateStateThread"
exit_now = false
interrupt_requested = false
#12 0x00007ffff05b52d4 in lldb_private::Process::PrivateStateThread
(arg=0x6730d0) at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Target/Process.cpp:3999
args_up =
std::unique_ptr<lldb_private::Process::PrivateStateThreadArgs> containing
0x6730d0
result = 0x7fffc9ffaf80
#13 0x00007ffff042b509 in
lldb_private::HostNativeThreadBase::ThreadCreateTrampoline (arg=0x6733d0)
at
/home/dantipov/llvm/6.0.0/source/tools/lldb/source/Host/common/HostNativeThreadBase.cpp:66
info = 0x6733d0
thread_fptr = 0x7ffff05b5288
<lldb_private::Process::PrivateStateThread(void*)>
thread_arg = 0x6730d0
log = 0x0
#14 0x00007ffff7bbd61b in start_thread (arg=0x7fffc9ffb700) at
pthread_create.c:465
pd = 0x7fffc9ffb700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736582366976,
-5400878001657553863, 140736582365056, 0, 140737488331808, 140736582367680,
5400847216983858233,
5400895008859413561}, mask_was_saved = 0}}, priv = {pad = {0x0,
0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#15 0x00007fffee79598f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20180219/d48486f8/attachment-0001.html>
More information about the lldb-dev
mailing list