|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 1/3] build: prepare script for gdb autoloading
Gdb can automatically load helper scripts. It looks for a file named
objfile-gdb.py, where objfile is the object file's real name.
Copy the uk-gdb.py into the build directry with a little modifictaion
- hardcode the absolute path to the unikraft's scripts directory.
This way gdb helper can easily import modules.
Signed-off-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
---
Makefile | 12 +++++++++++-
support/scripts/trace.py | 3 ++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index f0d1ad47..a22be4bc 100644
--- a/Makefile
+++ b/Makefile
@@ -532,8 +532,18 @@ libs: $(UK_ALIBS) $(UK_ALIBS-y) $(UK_OLIBS) $(UK_OLIBS-y)
images: $(UK_IMAGES) $(UK_IMAGES-y)
-all: images
+GDB_HELPER_LINKS := $(addsuffix .dbg-gdb.py,$(UK_IMAGES-y) $(UK_IMAGES))
+$(GDB_HELPER_LINKS):
+ $(call verbose_cmd,LN,$(notdir $@), ln -sf uk-gdb.py $@)
+SCRIPTS_DIR_BACKSLASHED = $(subst /,\/,$(SCRIPTS_DIR))
+$(BUILD_DIR)/uk-gdb.py: $(SCRIPTS_DIR)/uk-gdb.py
+ $(call verbose_cmd,GEN,$(notdir $@), \
+ sed '/scripts_dir = /
s/os.path.dirname(os.path.realpath(__file__))/"$(SCRIPTS_DIR_BACKSLASHED)"/g'
$^ > $@)
+
+gdb_helpers: $(GDB_HELPER_LINKS) $(BUILD_DIR)/uk-gdb.py
+
+all: images gdb_helpers
################################################################################
# Cleanup rules
################################################################################
diff --git a/support/scripts/trace.py b/support/scripts/trace.py
index 5632d39f..636cd2dd 100755
--- a/support/scripts/trace.py
+++ b/support/scripts/trace.py
@@ -98,10 +98,11 @@ def fetch(uk_img, out, remote, do_list, verbose):
if os.path.exists(out):
os.remove(out)
+ helper_path = os.path.abspath(uk_img) + '-gdb.py'
gdb_cmd = ['gdb', '-nh', '-batch',
click.format_filename(uk_img),
+ '-iex', 'add-auto-load-safe-path ' + helper_path,
'-ex', 'target remote ' + remote,
- '-ex', 'source %s/uk-gdb.py' % scripts_dir,
'-ex', 'uk trace save ' + out
]
--
2.19.2
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |