From e7561e6933e14c525929a44ae08298e162daf1bf Mon Sep 17 00:00:00 2001 From: oddlama Date: Fri, 15 Sep 2023 18:01:24 +0200 Subject: [PATCH] feat: use pwndbg as default gdb --- modules/optional/dev/default.nix | 5 ----- users/myuser/dev/gdb.nix | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/modules/optional/dev/default.nix b/modules/optional/dev/default.nix index 187477d..819dc7e 100644 --- a/modules/optional/dev/default.nix +++ b/modules/optional/dev/default.nix @@ -4,11 +4,6 @@ ./yubikey.nix ]; - environment.systemPackages = with pkgs; [ - (gdb.override { enableDebuginfod = true; }) - hotspot - ]; - environment.enableDebugInfo = true; services.nixseparatedebuginfod.enable = true; } diff --git a/users/myuser/dev/gdb.nix b/users/myuser/dev/gdb.nix index 3c06f3f..5373dda 100644 --- a/users/myuser/dev/gdb.nix +++ b/users/myuser/dev/gdb.nix @@ -1,8 +1,29 @@ -{ +{ pkgs, ... }: let + # pwndbg wraps a gdb binary for us, but we want debuginfod in there too. + # Also make it the default gdb. + pwndbgWithDebuginfod = (pkgs.pwndbg.override { + gdb = pkgs.gdb.override { + enableDebuginfod = true; + }; + }).overrideAttrs (_finalAttrs: previousAttrs: { + installPhase = previousAttrs.installPhase + '' + ln -s $out/bin/pwndbg $out/bin/gdb + ''; + }); +in { + home.packages = [ + pwndbgWithDebuginfod + pkgs.hotspot + ]; + home.file.gdbinit = { target = ".gdbinit"; text = '' + set debuginfod enabled on set auto-load safe-path / + set disassembly-flavor intel + set history save on + set print pretty on ''; }; }