Organize gdb/llvm files a bit better

Also adds a README.md for gdb.
This commit is contained in:
Gleb Mazovetskiy
2024-08-18 04:58:47 +01:00
parent 451f1fd70a
commit 31f91ac8aa
9 changed files with 52 additions and 11 deletions
+1 -1
View File
@@ -1 +1 @@
source tools/gdb/pretty_printers/utils/static_vector_pp.py
source tools/gdb/devilution_gdb/__init__.py
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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 _
+7
View File
@@ -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)
@@ -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
View File
@@ -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)