|Re: [cdt-dev] LLDB/Clang|
On 11/06/2013 06:43 PM, Eugene Ostroukhov wrote:
LLDB uses SWiG to generate Python bindings. I have no experience with SWiG, but apparently it can generate JNI bindings as well. One thing I am looking at is having custom protocol between debugger and fronted - e.g. instead of stream-based MI protocol in GDB it is possible to have standalone LLDB process (currently it can be written in C++ or Python) that communicates with the fronted via pipes (e.g. Google protobuf) and memory maps. Controlling both sides of the communication channel (unlike DSF-GDB) decreases number of messages and allows to heavily optimize the exchanges.
We have our own DSF-based debugger which uses protobuf to communicate with an external process over a local socket, and my experience from benchmarking the communication is that the communication pipe design (local socket vs. pipe, protobuf vs. yaml, etc.) is not worth "heavy optimization". Any bottlenecks will either be on the Eclipse side (UI-related) or on the debugger side (reading symbols, communicating with hardware, etc).
Of course, controlling both ends of the communication will allow you to design the message protocol to avoid things like unecessary message roundtrips.
-- *Jesper Eskilson* /Development Engineer/ IAR Systems AB Box 23051, Strandbodgatan 1 SE-750 23 Uppsala, SWEDEN E-mail: jesper.eskilson@xxxxxxx <mailto:jesper.eskilson@xxxxxxx> Website: www.iar.com <http://www.iar.com> Twitter: www.twitter.com/iarsystems <http://www.twitter.com/iarsystems>
Back to the top