above line to your shell's init file (e.g. `~/.bashrc`
or similar).
You can then open the core file in `lldb`:
>bash
lldb -c /cores/core.12345
<
Apple's documentation archive has some other useful information
https://developer.apple.com/library/archive/technotes/tn2124/_index.html#//apple_ref/doc/uid/DTS10003391-CH1-SECCOREDUMPS,
but note that some of the things on this page are out of date (such as enabling
core dumps with `/etc/launchd.conf`).
==============================================================================
Gdb *dev-tools-gdb*
USING GDB TO STEP THROUGH FUNCTIONAL TESTS
Use `TEST_TAG` to run tests matching busted tags (of the form `#foo` e.g.
`it("test #foo ...", ...)`):
>bash
GDB=1 TEST_TAG=foo make functionaltest
<
Then, in another terminal:
>bash
gdb build/bin/nvim
(gdb) target remote localhost:7777
-- See `nvim_argv` in https://github.com/neovim/neovim/blob/master/test/functional/testnvim.lua.
USING LLDB TO STEP THROUGH UNIT TESTS
>
lldb .deps/usr/bin/luajit -- .deps/usr/bin/busted --lpath="./build/?.lua" test/unit/
<
USING GDB
To attach to a running `nvim` process with a pid of 1234 (Tip: the pid of a
running Nvim instance can be obtained by calling |getpid()|), for instance:
>bash
gdb -tui -p 1234 build/bin/nvim
<
The `gdb` interactive prompt will appear. At any time you can:
- `break foo` to set a breakpoint on the `foo()` function
- `n` to step over the next statement
- `<Enter>` to repeat the last command
- `s` to step into the next statement
- `c` to continue
- `finish` to step out of the current function
- `p zub` to print the value of `zub`
- `bt` to see a backtrace (callstack) from the current location
- `CTRL-x CTRL-a` or `tui enable` to show a TUI view of the source file in the
current debugging context. This can be extremely useful as it avoids the
need for a gdb "frontend".
- `<up>` and `<down>` to scroll the source file view
GDB REVERSE DEBUGGING
- `set record full insn-number-max unlimited`
- `continue`