Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

process handle in lldbinit

I'd like to have the following command init my .lldbinit.

process handle SIGPROF -n false -p true -s false

The problem is that lldb won't run this command when it starts up and doesn't yet have a process.

error: Aborting reading of commands after command #1: ' process handle SIGPROF -n false -p true -s false' failed with error: No current target; cannot handle signals until you have a valid target and process.

How can I tell lldb to apply this command whenever it does have a process?

like image 965
Praxeolitic Avatar asked Aug 29 '14 16:08

Praxeolitic


2 Answers

As of right now, I don't think you can

Allowing this would require one of two things:

  • a model where LLDB records your preferences and applies them to processes as they come about (only the first one? all of them?)
  • a model where LLDB has "event hooks" for things like a process has shown up, a process has gone away, and you could script the hook (via LLDB commands or Python) to perform certain actions, including setting signal handling
like image 61
Enrico Granata Avatar answered Oct 23 '22 07:10

Enrico Granata


One workaround for this is to take the set of commands you want to run in lldb after the file you are debugging is loaded, put them in a file, and run:

$ lldb -s <command file> <FileToBeDebugged>

Then if you like this and use it often, you can make a shell alias of part up to .

If you are using Xcode, a common trick is to set a breakpoint at main in your project, put the commands you want to run there, and then make it "auto-continue".

like image 41
Jim Ingham Avatar answered Oct 23 '22 08:10

Jim Ingham