forked from mirrors_public/oddlama_nix-config
feat: write small gdb patch to show libraries in unknown coredump backtraces
This commit is contained in:
parent
451b562fd4
commit
154a2518e0
2 changed files with 44 additions and 3 deletions
|
@ -0,0 +1,33 @@
|
||||||
|
diff --git a/gdb/stack.c b/gdb/stack.c
|
||||||
|
index 7e45d59..cf38ff8 100644
|
||||||
|
--- a/gdb/stack.c
|
||||||
|
+++ b/gdb/stack.c
|
||||||
|
@@ -1376,7 +1376,27 @@ print_frame (const frame_print_options &fp_opts,
|
||||||
|
annotate_frame_function_name ();
|
||||||
|
|
||||||
|
string_file stb;
|
||||||
|
- gdb_puts (funname ? funname.get () : "??", &stb);
|
||||||
|
+
|
||||||
|
+ const char* from_where = "??";
|
||||||
|
+ if (funname) {
|
||||||
|
+ from_where = funname.get();
|
||||||
|
+ } else {
|
||||||
|
+ if (core_bfd) {
|
||||||
|
+ gdbarch_read_core_file_mappings(gdbarch, core_bfd,
|
||||||
|
+ [=] (ULONGEST count) { },
|
||||||
|
+ [&] (int num, ULONGEST start, ULONGEST end, ULONGEST file_ofs,
|
||||||
|
+ const char *filename, const bfd_build_id *build_id)
|
||||||
|
+ {
|
||||||
|
+ if (start <= pc && pc < end) {
|
||||||
|
+ from_where = filename;
|
||||||
|
+ }
|
||||||
|
+ });
|
||||||
|
+ } else {
|
||||||
|
+ // too much work for this small patch. Would need to inspect /proc/<pid>/maps
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ gdb_puts (from_where, &stb);
|
||||||
|
uiout->field_stream ("func", stb, function_name_style.style ());
|
||||||
|
uiout->wrap_hint (3);
|
||||||
|
annotate_frame_args ();
|
|
@ -3,9 +3,17 @@
|
||||||
# Also make it the default gdb.
|
# Also make it the default gdb.
|
||||||
pwndbgWithDebuginfod =
|
pwndbgWithDebuginfod =
|
||||||
(pkgs.pwndbg.override {
|
(pkgs.pwndbg.override {
|
||||||
gdb = pkgs.gdb.override {
|
gdb =
|
||||||
enableDebuginfod = true;
|
(pkgs.gdb.override {
|
||||||
};
|
enableDebuginfod = true;
|
||||||
|
})
|
||||||
|
.overrideAttrs (_finalAttrs: previousAttrs: {
|
||||||
|
patches =
|
||||||
|
previousAttrs.patches
|
||||||
|
++ [
|
||||||
|
./0001-gdb-show-libraries-in-coredump-backtrace.patch
|
||||||
|
];
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.overrideAttrs (_finalAttrs: previousAttrs: {
|
.overrideAttrs (_finalAttrs: previousAttrs: {
|
||||||
installPhase =
|
installPhase =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue