[Lldb-commits] [PATCH] Fix -gdb-exit to detach if was attached or destroy otherwise (MI)
Ilia K
ki.stfu at gmail.com
Thu Mar 26 00:49:09 PDT 2015
Hello @clayborg,
I added the switch() back in Process::Finalize() in r233258, because it caused an error:
$ bin/lldb
(lldb) target create ~/p/hello
Current executable set to '~/p/hello' (x86_64).
(lldb) r
Assertion failed: (!"bad_weak_ptr"), function shared_ptr, file /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory, line 5174.
Abort trap: 6
backtrace:
$ lldb bin/lldb -- ~/p/hello
(lldb) target create "bin/lldb"
Current executable set to 'bin/lldb' (x86_64).
(lldb) settings set -- target.run-args "/Users/IliaK/p/hello"
(lldb) r
Process 50068 launched: '/Users/IliaK/p/llvm/build_ninja/bin/lldb' (x86_64)
Process 50068 stopped
* thread #1: tid = 0xbfd4c, 0x00007fff5fc0d28e, stop reason = signal SIGSTOP
frame #0: 0x00007fff5fc0d28e
-> 0x7fff5fc0d28e: pushq %rbp
0x7fff5fc0d28f: movq %rsp, %rbp
0x7fff5fc0d292: popq %rbp
0x7fff5fc0d293: retq
(lldb) c
Process 50068 resuming
(lldb) target create "/Users/IliaK/p/hello"
Current executable set to '/Users/IliaK/p/hello' (x86_64).
(lldb) r
Assertion failed: (!"bad_weak_ptr"), function shared_ptr, file /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/memory, line 5174.
Process 50068 stopped
* thread #1: tid = 0xbfd4c, 0x00007fff9b42f286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00007fff9b42f286 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill + 10:
-> 0x7fff9b42f286: jae 0x7fff9b42f290 ; __pthread_kill + 20
0x7fff9b42f288: movq %rax, %rdi
0x7fff9b42f28b: jmp 0x7fff9b42ac53 ; cerror_nocancel
0x7fff9b42f290: retq
(lldb) bt
* thread #1: tid = 0xbfd4c, 0x00007fff9b42f286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00007fff9b42f286 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fff8f28c42f libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x00000001014f3d9b liblldb.3.7.0.dylib`raise(sig=6) + 27 at Signals.inc:524
frame #3: 0x00000001014f3e52 liblldb.3.7.0.dylib`abort + 18 at Signals.inc:541
frame #4: 0x00000001014f3e31 liblldb.3.7.0.dylib`__assert_rtn(func=0x0000000103c4e976, file=0x0000000103c4e981, line=5174, expr=0x0000000103c4e9f1) + 129 at Signals.inc:537
frame #5: 0x000000010002d3c3 liblldb.3.7.0.dylib`std::__1::shared_ptr<lldb_private::Process>::shared_ptr<lldb_private::Process>(this=0x00007fff5fbf9ec8, __r=0x0000000109293220, (null)=(__for_bool_ = 0)) + 163 at memory:5174
frame #6: 0x000000010002d313 liblldb.3.7.0.dylib`std::__1::shared_ptr<lldb_private::Process>::shared_ptr<lldb_private::Process>(this=0x00007fff5fbf9ec8, __r=0x0000000109293220, (null)=(__for_bool_ = 0)) + 35 at memory:5176
frame #7: 0x0000000101bd3121 liblldb.3.7.0.dylib`lldb_private::Process::SetPrivateState(lldb::StateType) [inlined] std::__1::enable_shared_from_this<lldb_private::Process>::shared_from_this(this=0x0000000109293220) + 51 at memory:5240
frame #8: 0x0000000101bd30ee liblldb.3.7.0.dylib`lldb_private::Process::SetPrivateState(this=0x0000000109293200, new_state=eStateDetached) + 862 at Process.cpp:1785
frame #9: 0x0000000101fe7266 liblldb.3.7.0.dylib`ProcessKDP::DoDetach(this=0x0000000109293200, keep_stopped=false) + 342 at ProcessKDP.cpp:663
frame #10: 0x0000000101fe7390 liblldb.3.7.0.dylib`ProcessKDP::DoDestroy(this=0x0000000109293200) + 48 at ProcessKDP.cpp:675
frame #11: 0x0000000101bce7a3 liblldb.3.7.0.dylib`lldb_private::Process::Destroy(this=0x0000000109293200) + 419 at Process.cpp:3959
frame #12: 0x0000000101bcdb86 liblldb.3.7.0.dylib`lldb_private::Process::Finalize(this=0x0000000109293200) + 54 at Process.cpp:826
frame #13: 0x0000000101fe4e3a liblldb.3.7.0.dylib`ProcessKDP::~ProcessKDP(this=0x0000000109293200) + 106 at ProcessKDP.cpp:203
frame #14: 0x0000000101fe4f05 liblldb.3.7.0.dylib`ProcessKDP::~ProcessKDP(this=0x0000000109293200) + 21 at ProcessKDP.cpp:197
frame #15: 0x0000000101fe4fb9 liblldb.3.7.0.dylib`ProcessKDP::~ProcessKDP(this=0x0000000109293200) + 25 at ProcessKDP.cpp:197
frame #16: 0x0000000101feaa0c liblldb.3.7.0.dylib`std::__1::__shared_ptr_pointer<ProcessKDP*, std::__1::default_delete<ProcessKDP>, std::__1::allocator<ProcessKDP> >::__on_zero_shared() [inlined] std::__1::default_delete<ProcessKDP>::operator(this=0x000000010aa626a8, this=0x000000010aa626a8, this=0x000000010aa626a8, this=0x000000010aa626a8, this=0x000000010aa626a8, __ptr=0x0000000109293200)(ProcessKDP*) const + 156 at memory:2426
frame #17: 0x0000000101fea9e1 liblldb.3.7.0.dylib`std::__1::__shared_ptr_pointer<ProcessKDP*, std::__1::default_delete<ProcessKDP>, std::__1::allocator<ProcessKDP> >::__on_zero_shared(this=0x000000010aa62690) + 113 at memory:3669
frame #18: 0x00007fff9797e8a6 libc++.1.dylib`std::__1::__shared_weak_count::__release_shared() + 44
frame #19: 0x000000010002d2df liblldb.3.7.0.dylib`std::__1::shared_ptr<lldb_private::Process>::~shared_ptr(this=0x00007fff5fbfa948) + 47 at memory:4448
frame #20: 0x000000010002bf15 liblldb.3.7.0.dylib`std::__1::shared_ptr<lldb_private::Process>::~shared_ptr(this=0x00007fff5fbfa948) + 21 at memory:4446
frame #21: 0x0000000101bcb7fa liblldb.3.7.0.dylib`lldb_private::Process::FindPlugin(lldb_private::Target&, char const*, lldb_private::Listener&, lldb_private::FileSpec const*) [inlined] std::__1::shared_ptr<lldb_private::Process>::reset(this=0x00007fff5fbfab88) + 2378 at memory:4577
frame #22: 0x0000000101bcb6de liblldb.3.7.0.dylib`lldb_private::Process::FindPlugin(target=0x0000000109820e00, plugin_name=0x0000000000000000, listener=0x000000010903d278, crash_file_path=0x0000000000000000) + 2094 at Process.cpp:679
frame #23: 0x0000000101c3b56e liblldb.3.7.0.dylib`lldb_private::Target::CreateProcess(this=0x0000000109820e00, listener=0x000000010903d278, plugin_name=0x0000000000000000, crash_file=0x0000000000000000) + 142 at Target.cpp:206
frame #24: 0x0000000101e8473d liblldb.3.7.0.dylib`PlatformPOSIX::Attach(this=0x000000010881b640, attach_info=0x00007fff5fbfb270, debugger=0x000000010903d000, target=0x0000000109820e00, error=0x00007fff5fbfbd68) + 1325 at PlatformPOSIX.cpp:785
frame #25: 0x0000000101bbc204 liblldb.3.7.0.dylib`lldb_private::Platform::DebugProcess(this=0x000000010881b640, launch_info=0x00000001088abc28, debugger=0x000000010903d000, target=0x0000000109820e00, error=0x00007fff5fbfbd68) + 644 at Platform.cpp:1289
frame #26: 0x0000000101e84fe4 liblldb.3.7.0.dylib`PlatformPOSIX::DebugProcess(this=0x000000010881b640, launch_info=0x00000001088abc28, debugger=0x000000010903d000, target=0x0000000109820e00, error=0x00007fff5fbfbd68) + 244 at PlatformPOSIX.cpp:827
frame #27: 0x0000000101c4bae1 liblldb.3.7.0.dylib`lldb_private::Target::Launch(this=0x0000000109820e00, launch_info=0x00000001088abc28, stream=0x00007fff5fbfbd88) + 1953 at Target.cpp:2560
frame #28: 0x00000001015ba7dd liblldb.3.7.0.dylib`CommandObjectProcessLaunch::DoExecute(this=0x00000001088abab0, launch_args=0x00007fff5fbfc038, result=0x00007fff5fbfed20) + 1357 at CommandObjectProcess.cpp:263
frame #29: 0x0000000101a06e99 liblldb.3.7.0.dylib`lldb_private::CommandObjectParsed::Execute(this=0x00000001088abab0, args_string=0x00007fff5fbfc891, result=0x00007fff5fbfed20) + 537 at CommandObject.cpp:1081
frame #30: 0x00000001019dd82e liblldb.3.7.0.dylib`lldb_private::CommandInterpreter::HandleCommand(this=0x00000001088a11e0, command_line=0x00007fff5fbfeec9, lazy_add_to_history=eLazyBoolCalculate, result=0x00007fff5fbfed20, override_context=0x0000000000000000, repeat_on_empty_command=true, no_context_switching=false) + 23358 at CommandInterpreter.cpp:1966
frame #31: 0x00000001019e7409 liblldb.3.7.0.dylib`lldb_private::CommandInterpreter::IOHandlerInputComplete(this=0x00000001088a11e0, io_handler=0x0000000108d03370, line=0x00007fff5fbfeec8) + 1161 at CommandInterpreter.cpp:3151
frame #32: 0x00000001019e7ac7 liblldb.3.7.0.dylib`non-virtual thunk to lldb_private::CommandInterpreter::IOHandlerInputComplete(this=0x00000001088a12b0, io_handler=0x0000000108d03370, line=0x00007fff5fbfeec8) + 55 at CommandInterpreter.cpp:3230
frame #33: 0x00000001017d8a67 liblldb.3.7.0.dylib`lldb_private::IOHandlerEditline::Run(this=0x0000000108d03370) + 1575 at IOHandler.cpp:729
frame #34: 0x000000010179266e liblldb.3.7.0.dylib`lldb_private::Debugger::ExecuteIOHandlers(this=0x000000010903d000) + 142 at Debugger.cpp:920
frame #35: 0x00000001019e8567 liblldb.3.7.0.dylib`lldb_private::CommandInterpreter::RunCommandInterpreter(this=0x00000001088a11e0, auto_handle_events=true, spawn_thread=false, options=0x00007fff5fbff210) + 199 at CommandInterpreter.cpp:3388
frame #36: 0x0000000100048809 liblldb.3.7.0.dylib`lldb::SBDebugger::RunCommandInterpreter(this=0x00007fff5fbff9f8, auto_handle_events=true, spawn_thread=false) + 137 at SBDebugger.cpp:975
frame #37: 0x0000000100008abe lldb`Driver::MainLoop(this=0x00007fff5fbff9d8) + 5502 at Driver.cpp:1152
frame #38: 0x0000000100009077 lldb`main(argc=2, argv=0x00007fff5fbffb20, envp=0x00007fff5fbffb38) + 359 at Driver.cpp:1252
frame #39: 0x00007fff94f3b5c9 libdyld.dylib`start + 1
(lldb) quit
Quitting LLDB will kill one or more processes. Do you really want to proceed: [Y/n] y
Thanks,
Ilia
http://reviews.llvm.org/D8298
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the lldb-commits
mailing list