See http://lldb.llvm.org/index.html.
Mozilla-specific lldb settingsThere’s an .lldbinit
file in the Mozilla source tree, which applies recommended settings and includes a few type summaries and Mozilla-specific debugging commands via the lldbutils module (see python/lldbutils/README.txt). For information about available features see the links above and the Using LLDB to debug Gecko blog post.
The in-tree .lldbinit
should be loaded automatically in most cases when running lldb from the command line (e.g. using Mach), but not when using Xcode. See Debugging On macOS for information on setting up Xcode.
Warning
LLDB warning: Xcode 5 only comes with lldb (gdb is gone). The introduction and use of UNIFIED_SOURCES in the source starting around November 2013 has broken the default LLDB configuration so that it will not manage to resolve breakpoints in files that are build using UNIFIED_SOURCES (the breakpoints will be listed as “pending”, and lldb will not stop at them). To fix this add the following to your $HOME/.lldbinit file:
# Mozilla's use of UNIFIED_SOURCES to include multiple source files into a # single compiled file breaks lldb breakpoint setting. This works around that. # See http://lldb.llvm.org/troubleshooting.html for more. settings set target.inline-breakpoint-strategy always
Restart Xcode/lldb and restart your debugging session. If that still doesn’t fix things then try closing Xcode/lldb, doing a clobber build, reopening Xcode/lldb, and restarting your debugging session.
Starting a debugging session Attaching to an existing processYou can attach to Firefox with following command:
(lldb) process attach --name firefox
Some versions of lldb causes crashes after attaching to Firefox.
Running a new processTo start Firefox under the debugger, run lldb
followed by “–“, followed by the command line you’d like to run, like this:
$ lldb -- obj-ff-dbg/dist/Nightly.app/Contents/MacOS/firefox -profile /path/to/profile
Then set breakpoints you need and start the process:
(lldb) breakpoint set --name nsInProcessTabChildGlobal::InitTabChildGlobal Breakpoint created: 1: name = 'nsInProcessTabChildGlobal::InitTabChildGlobal', locations = 0 (pending) WARNING: Unable to resolve breakpoint to any actual locations. (lldb) r Process 7602 launched: '/.../obj-ff-opt/dist/Nightly.app/Contents/MacOS/firefox' (x86_64) 1 location added to breakpoint 1
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3