[lldb-dev] lldb issues on MacOS

Greg Clayton gclayton at apple.com
Thu Nov 6 10:12:21 PST 2014


And once you get things build, run the "lldb" binary against /bin/ls:

% ./lldb /bin/ls
(lldb) run

Make sure you see some output. This lets you know that debugserver was able to be found and that the code signing worked. If you tried code signing and it failed previously, you need to delete the old debugserver binary and re-create it as the kernel caches the code signature based on the file node (vnode) and even if you later code sign it correctly, it won't update its cache.

Greg

> On Nov 6, 2014, at 10:09 AM, Greg Clayton <gclayton at apple.com> wrote:
> 
> If you want to run on MacOSX, I would highly recommend just building with Xcode. Why?
> 1 - It will build a LLDB.framework that contains everything you need including the debugserver, header files, the lldb shared library, lldb python modules, additional python modules, etc. Everything you need in order to link against it, and run against it. On other platforms like linux you run into the "lets scatter files all over the system and hope everyone picks and uses the right stuff. Headers in /usr/local/include/lldb, debugserver goes where? python module lives where? Think of frameworks as directories that contain everything you need. The best thing is you can have multiple LLDB.framework bundles all over and link against any one of them. You won't overwrite the previous header from from build a with build b's header files by copying the headers over the old /usr/local/include/lldb...
> 
> 2 - If you have setup the lldb_codesign code signature, it will sign things for you correctly
> 
> To build the Xcode stuff from the command line just go to the root directory and type:
> 
> % xcodebuild -configuration Debug
> 
> When it is done, there will be a "build/Debug" folder with everything you need. The make and cmake builds make a bunch of normal unix style binaries (lldb.so, lldb) and have no place to put the resources (like debugserver, python module, etc). With the LLDB.framework, it can locate the LLDB.framework/LLDB binary and find the debugserver relative to itself within the LLDB.framework. Likewise with other tools and python stuff.
> 
> Greg
> 
>> On Oct 31, 2014, at 6:20 AM, Nikolay Koldunov <nikolay.koldunov at oracle.com> wrote:
>> 
>> Hi All!
>> 
>> I've just built lldb and lldb-mi from the trunk sources on MacOS and faced these issues:
>> 1). lldb was unable to run target (error: process launch failed: unable to locate debugserver)
>> 2). lldb-mi was unable to run target too (Command 'exec-run'. Invalid process during debug session)
>> 
>> I followed your instructions about code signing.
>> 
>> What should I do or check to proceed?
>> 
>> Regards,
>> Nikolay
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> 





More information about the lldb-dev mailing list