Browse Source

Organize gdb/llvm files a bit better

Also adds a README.md for gdb.
pull/7352/head
Gleb Mazovetskiy 2 years ago
parent
commit
31f91ac8aa
  1. 2
      .gdbinit
  2. 6
      .lldbinit
  3. 34
      tools/gdb/README.md
  4. 6
      tools/gdb/devilution_gdb/__init__.py
  5. 0
      tools/gdb/devilution_gdb/pretty_printers/utils/static_vector_pp.py
  6. 0
      tools/lldb/README.md
  7. 7
      tools/lldb/devilution_lldb/__init__.py
  8. 2
      tools/lldb/devilution_lldb/pretty_printers/utils/static_vector_pp.py
  9. 6
      tools/lldbutils/lldbutils/__init__.py

2
.gdbinit

@ -1 +1 @@
source tools/gdb/pretty_printers/utils/static_vector_pp.py
source tools/gdb/devilution_gdb/__init__.py

6
.lldbinit

@ -1,4 +1,4 @@
script topsrcdir = topsrcdir if "topsrcdir" in locals() else os.getcwd()
script sys.path.append(os.path.join(topsrcdir, "tools/lldbutils"))
script import lldbutils
script lldbutils.init()
script sys.path.append(os.path.join(topsrcdir, "tools/lldb"))
script import devilution_lldb
script devilution_lldb.init()

34
tools/gdb/README.md

@ -0,0 +1,34 @@
# gdb debugging enhancements
Requires gdb v14.1+.
The code in this directory is imported via `.gdbinit`.
Working directory `.gdb` is not loaded by default.
You can run gdb with `-iex 'add-auto-load-safe-path .'` to load it.
For example:
```bash
gdb -iex 'add-auto-load-safe-path .' build/devilutionx
```
If you're using VS Code with CMake, you can instead add the following to your `.vscode/settings.json`:
```json
"cmake.debugConfig": {
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Load gdb enhancements",
"text": "source ${workspaceFolder}/tools/gdb/devilution_gdb/__init__.py",
"ignoreFailures": false
}
]
}
```

6
tools/gdb/devilution_gdb/__init__.py

@ -0,0 +1,6 @@
import sys
import pathlib
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parent.parent))
import devilution_gdb.pretty_printers.utils.static_vector_pp as _

0
tools/gdb/pretty_printers/utils/static_vector_pp.py → tools/gdb/devilution_gdb/pretty_printers/utils/static_vector_pp.py

0
tools/lldbutils/README.md → tools/lldb/README.md

7
tools/lldb/devilution_lldb/__init__.py

@ -0,0 +1,7 @@
import lldb
import devilution_lldb.pretty_printers.utils.static_vector_pp
def init():
devilution_lldb.pretty_printers.utils.static_vector_pp.init(lldb.debugger)

2
tools/lldbutils/lldbutils/pretty_printers/utils/static_vector_pp.py → tools/lldb/devilution_lldb/pretty_printers/utils/static_vector_pp.py

@ -28,5 +28,5 @@ class StaticVectorSyntheticChildrenProvider:
def init(debugger: lldb.debugger):
debugger.HandleCommand(
'type synthetic add -x "devilution::StaticVector<" -l lldbutils.pretty_printers.utils.static_vector_pp.StaticVectorSyntheticChildrenProvider'
'type synthetic add -x "devilution::StaticVector<" -l devilution_lldb.pretty_printers.utils.static_vector_pp.StaticVectorSyntheticChildrenProvider'
)

6
tools/lldbutils/lldbutils/__init__.py

@ -1,6 +0,0 @@
import lldb
import lldbutils.pretty_printers.utils.static_vector_pp
def init():
lldbutils.pretty_printers.utils.static_vector_pp.init(lldb.debugger)
Loading…
Cancel
Save