Hi,

I may be missing your point here, but I guess the easiest way would be for you 
to create an LLDB SBDebugger instance, and use its SBCommandInterpreter to send 
commands and read replies. Then, you can parse the command output for each 
thing you send, and use the parsed information to generate your visuals.

If you are particularly adventurous you could even create a Python class with 
method calls like SetBreakpoint, Step, ... and have these methods send the 
right commands and return you correctly parsed output.

Of course, if anything in the way LLDB displays data changes, your parser would 
have to change along with it. But, for a cheap way out, this one seems pretty 
reasonable.

Sincerely,
Enrico Granata
✆ 408.974.5572 | ✉ egranata@.com




On Aug 31, 2011, at 9:13 PM, [email protected] wrote:

> I didn't really explain that particularly well - I figured I would have 
> external python scripts that draw the UI for other windows using ncurses and 
> connect to some comms channel opened by whatever is running within LLDB's 
> python interpreter. These external scripts would be consumers of data pushed 
> out by that internal script and render that data (disassembly around current 
> EIP/RIP, stack data, etc). Really I should just implement a full new front 
> end but I will never get around to it and just want a cheap way out.
> 
> Egon
> 
> On 01/09/2011, at 2:04 PM, [email protected] wrote:
> 
>> Hi,
>> 
>> I want to implement some additional interfaces on top of LLDB using python 
>> and I was hoping someone might be able to tell me how feasible it would be 
>> to do just using LLDB's embedded python interpreter.
>> 
>> I would like to run a regular LLDB session in one terminal and display 
>> register contents, disassembly and stack contents in other windows to 
>> somewhat mimic the displays of debuggers like Immunity or OllyDbg on 
>> Windows. I'd prefer to not have to implement a full new front end for LLDB 
>> as this is just intended to be complementary to the standard console 
>> interface to LLDB. I think I would need to be able to register handlers to 
>> be called on breakpoints (this looks quite easy from the documentation), but 
>> also handlers to be called after stepping over an instruction (to update the 
>> selected line in the disassembly, update register contents display, etc).
>> 
>> Does this sound like something that could be easily implemented using the 
>> embedded python scripting? I have had a look at the documentation but I 
>> can't see anything that help with this. I'm open to other suggestions :)
>> 
>> Thanks
>> _______________________________________________
>> lldb-dev mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> 
> 
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to