Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLDB commits suicide after failing launch a process twice. #19619

Closed
piotrrak opened this issue Mar 25, 2014 · 4 comments
Closed

LLDB commits suicide after failing launch a process twice. #19619

piotrrak opened this issue Mar 25, 2014 · 4 comments
Labels
bugzilla Issues migrated from bugzilla lldb

Comments

@piotrrak
Copy link

Bugzilla Link 19245
Resolution FIXED
Resolved on Sep 26, 2016 09:51
Version unspecified
OS Linux
CC @emaste,@labath

Extended Description

Steps to reproduce:

Please note printf is shell builtin here

(lldb) file printf
Current executable set to 'printf' (x86_64).
(lldb) process launch 'hello'
error: process launch failed: Child exec failed.
(lldb) process launch 'hello'
There is a running process, kill it and restart?: [Y/n] Y
zsh: killed ./lldb

Expected result would be failing on first command 'file'

But it uncovers that there are possibly some other problems with process state tracking.

x86_64 host, linux
lldb version trunk@204667 but could reproduce it with earlier revisions.

@piotrrak
Copy link
Author

Here is backtrack from breakpoint on kill.

(gdb) bt
#​0 0x00007ffff14ce670 in kill () from /usr/lib/libc.so.6
#​1 0x00007ffff4ca44f3 in ProcessPOSIX::DoDestroy (this=0x79ecb0) at ProcessPOSIX.cpp:344
#​2 0x00007ffff3a7f4ed in lldb_private::Process::Destroy (this=0x79ecb0) at Process.cpp:3754
#​3 0x00007ffff352631d in CommandObjectProcessLaunchOrAttach::StopProcessIfNecessary (this=0x55c0c0, process=0x79ecb0, state=@0x7fffffffb4a8: lldb::eStateLaunching, result=...)
at CommandObjectProcess.cpp:93
#​4 0x00007ffff3525b80 in CommandObjectProcessLaunch::DoExecute (this=0x55c0c0, launch_args=..., result=...) at CommandObjectProcess.cpp:202
#​5 0x00007ffff375e3c0 in lldb_private::CommandObjectParsed::Execute (this=0x55c0c0, args_string=0x799dc8 "-c/bin/sh -- "hello"", result=...) at CommandObject.cpp:1031
#​6 0x00007ffff3751731 in lldb_private::CommandInterpreter::HandleCommand (this=0x564700, command_line=0x77c7c8 "run "hello"", lazy_add_to_history=lldb_private::eLazyBoolCalculate,
result=..., override_context=0x0, repeat_on_empty_command=true, no_context_switching=false) at CommandInterpreter.cpp:1858
#​7 0x00007ffff3755941 in lldb_private::CommandInterpreter::IOHandlerInputComplete (this=0x564700, io_handler=..., line=...) at CommandInterpreter.cpp:2996
#​8 0x00007ffff3755c37 in non-virtual thunk to lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::string&) () at CommandInterpreter.cpp:3043
#​9 0x00007ffff35be1e2 in lldb_private::IOHandlerEditline::Run (this=0x761bb0) at IOHandler.cpp:576
#​10 0x00007ffff359c2cc in lldb_private::Debugger::ExecuteIOHanders (this=0x504ea0) at Debugger.cpp:864
#​11 0x00007ffff375604b in lldb_private::CommandInterpreter::RunCommandInterpreter (this=0x564700, auto_handle_events=true, spawn_thread=false) at CommandInterpreter.cpp:3129
#​12 0x00007ffff346453a in lldb::SBDebugger::RunCommandInterpreter (this=0x7fffffffe548, auto_handle_events=true, spawn_thread=false) at SBDebugger.cpp:961
#​13 0x0000000000408c88 in Driver::MainLoop (this=0x7fffffffe528) at Driver.cpp:967
#​14 0x00000000004090eb in main (argc=1, argv=0x7fffffffe708, envp=0x7fffffffe718) at Driver.cpp:1066

@emaste
Copy link
Member

emaste commented Mar 25, 2014

On FreeBSD the 2nd process launch hangs instead of crashing

@piotrrak
Copy link
Author

WIP take on 2nd part of bug
Ed, could you please take a look how it works on FreeBSD? It is not really well tested, but I think it is correct. My doubt is why it is not needed gdb-remote, but I don't see how else public state could be fixed in this codepath.

@labath
Copy link
Collaborator

labath commented Sep 26, 2016

works now.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 9, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla lldb
Projects
None yet
Development

No branches or pull requests

3 participants