Skip to content

Commit

Permalink
Organize gdb/llvm files a bit better
Browse files Browse the repository at this point in the history
Also adds a README.md for gdb.
  • Loading branch information
glebm committed Aug 18, 2024
1 parent 451f1fd commit 31f91ac
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .gdbinit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
source tools/gdb/pretty_printers/utils/static_vector_pp.py
source tools/gdb/devilution_gdb/__init__.py
6 changes: 3 additions & 3 deletions .lldbinit
Original file line number Diff line number Diff line change
@@ -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 changes: 34 additions & 0 deletions tools/gdb/README.md
Original file line number Diff line number Diff line change
@@ -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 changes: 6 additions & 0 deletions tools/gdb/devilution_gdb/__init__.py
Original file line number Diff line number Diff line change
@@ -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 _
File renamed without changes.
7 changes: 7 additions & 0 deletions tools/lldb/devilution_lldb/__init__.py
Original file line number Diff line number Diff line change
@@ -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)
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ def get_child_at_index(self, index):

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 changes: 0 additions & 6 deletions tools/lldbutils/lldbutils/__init__.py

This file was deleted.

0 comments on commit 31f91ac

Please sign in to comment.