<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Comments inlined below.<div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 8, 2018, at 2:52 AM, Bewoayia Kebianyor via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><tt class=""><font size="2" class="">Hello Everyone,<br class="">
<br class="">
I started looking into the LLDB with the intention of adding custom commands
for my SW debugging purpose. For a better Understanding let me explain
what I intend to do. I have an source file generated automatically from
a Model with certain anotations added as comments in the code. This code
will would be compiled and in error cases debugged. When debugging I may
have to set breakpoints at certain statements in the code based on the
anotations incerted by the code generator. This is done by specifying the
source file and the line number. I Use CLANG to get the line number and
source file for the comments. <br class=""></font></tt></div></blockquote><div><br class=""></div>Did you know we have the ability to set breakpoints using source regular expression?</div><div><br class=""></div><div>(lldb) breakpoint set --source-pattern-regexp "// breakpoint [0-9]+" --file /path/to/foo.cpp</div><div><br class=""></div><div>This will use a regular expression to search the source file for the regular expression you specify and have one breakpoint that has multiple locations.</div><div><br class=""><blockquote type="cite" class=""><div class=""><tt class=""><font size="2" class="">
I would like to have custom commands for this and internally map the to
already existing commands  e.g. "breakpoint set -f -l".
I found some examples for python, and for c++ I only found the example
"lldb/examples/plugins/commands/fooplugin.cpp" for writing C++
plugin (dynLib) shipped with the LLDB source. In this example adding a
new commands was straight forward and in the DoExecute function, I call
the interpreter to handle a breakpoint command. I intend to use C++ rather
than Python.<br class=""></font></tt></div></blockquote><div><br class=""></div>Do you even need this custom command given what I said above?<br class=""><blockquote type="cite" class=""><div class=""><tt class=""><font size="2" class="">
<br class="">
This works fine for a simple shared lib (Simple modification of the Example
provided in LLDB. In Do execute call interpreter to handle a breakpoint
command). However if I add other C++ sources which does XML parsing, CLANG
RecursiveASTVisitor etc to the Library, creating the shared library with
eclipse is sucessful. I can link the created library to an application
and it works well. However when I load this in lldb with the command ==>
plugin load  "/home/bkebianyor/eclipse-workspace/Model_LLDB_Debugger/Debug/libModel_LLDB_Debugger.so",
I get the error message: "error: this file does not represent a loadable
dylib".<br class="">
<br class="">
<br class="">
#Loading the shared lib that is linked just to the liblldb.so - SUCESSFUL<br class="">
(lldb) <br class="">
(lldb) plugin load  /home/bkebianyor/eclipse-workspace/DynLib/Debug/libDynLib.so<br class="">
(lldb)<br class="">
<br class="">
#Loading the shared lib that is linked just to the liblldb.so + libxerces-c-3.2.so
- FAILS<br class="">
<br class="">
(lldb) plugin load  "/home/bkebianyor/eclipse-workspace/Model_LLDB_Debugger/Debug/libModel_LLDB_Debugger.so"<br class="">
error: this file does not represent a loadable dylib<br class="">
<br class="">
I have searched for this error on google, but could not find out how to
resolve this error. Most answers pointed to a mismatch of the lldb version
in the shared lib to be loaded and that linked to lldb, but that is not
my case. I am using lldb-5.0.2 and LLVM/CLANG 5.0.2 toolcahin on Linux
16.04.1-Ubuntu and Eclipse IDE. LLVM was built with SHARED_LIBS set to
ON.<br class=""></font></tt></div></blockquote><div><br class=""></div>I am guessing that maybe your libModel_LLDB_Debugger.so shared library can't find all the dependencies it requires when being loaded. Try making a small a.out file that links against this library and try to run your a.out program. See if you see any errors when the a.out tries to launch.</div><div><br class=""></div><div>Greg</div><div><br class=""><blockquote type="cite" class=""><div class=""><tt class=""><font size="2" class="">
<br class="">
Would be grateful for an answer.<br class="">
<br class="">
<br class="">
Thanks and Regards,<br class="">
<br class="">
Bewoayia<br class=""></font></tt></div></blockquote><div><br class=""></div><br class=""></div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class=""><tt class=""><font size="2" class="">
</font></tt>
<br class=""><tt class=""><font size="2" class="">-------------</font></tt>
<br class=""><tt class=""><font size="2" class="">Dipl.- Ing. Bewoayia Kebianyor<br class="">
Researcher - Hardware/Software Design Methodology Group<br class="">
<br class="">
OFFIS e.V. - Institut für Informatik<br class="">
FuE Bereich Verkehr | R&D Division Transportation<br class="">
Escherweg 2 - 26121 Oldenburg - Germany<br class="">
Phone/Fax.: +49 441 9722 237/-278<br class="">
<a href="mailto:bewoayia.kebianyor@offis.de" class="">E-Mail: bewoayia.kebianyor@offis.de</a><br class="">
URL: </font></tt><a href="http://www.offis.de/" class=""><tt class=""><font size="2" class="">http://www.offis.de</font></tt></a><tt class=""><font size="2" class=""><br class="">
<br class="">
Registergericht: Amtsgericht Oldenburg VR 1956<br class="">
Vorstand: Prof. Dr.-Ing. Wolfgang H. Nebel (Vorsitzender), Prof. Dr. techn.
Susanne Boll-Westermann, Prof. Dr. Werner Damm, Prof. Dr.-Ing. Axel Hahn,
Prof. Dr.-Ing. Andreas Hein, Prof. Dr. Sebastian Lehnhoff<br class="">
</font></tt>_______________________________________________<br class="">lldb-dev mailing list<br class=""><a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev<br class=""></div></blockquote></div><br class=""></div></body></html>