@ -25,6 +25,7 @@ let
isLLDB
;
isDev = true ;
isEditable = true ;
} ;
jemalloc-static = pkgs . jemalloc . overrideAttrs (
finalAttrs : previousAttrs : {
@ -51,7 +52,7 @@ let
in
{
default = pkgs . mkShell {
NIX_CONFIG = " e x t r a - e x p e r i m e n t a l - f e a t u r e s = n i x - c o m m a n d f l a k e s r e p l - f l a k e ";
NIX_CONFIG = " e x t r a - e x p e r i m e n t a l - f e a t u r e s = n i x - c o m m a n d f l a k e s ";
# Anything not handled by the poetry env
nativeBuildInputs =
builtins . attrValues {
@ -82,22 +83,34 @@ in
'' )
pkgs . pkgsCross . aarch64-multiplatform . buildPackages . binutils
pkgs . pkgsCross . riscv64 . buildPackages . binutils
pkgs . pkgsCross . mips el -linux-gnu. buildPackages . binutils
pkgs . pkgsCross . mips -linux-gnu. buildPackages . binutils
( pkgs . writeShellScriptBin " a a r c h 6 4 - l i n u x - g n u - g c c " ''
exec $ { lib . getBin pkgs . pkgsCross . aarch64-multiplatform . buildPackages . gcc } /bin/aarch64-unknown-linux-gnu-gcc " $ @ "
'' )
( pkgs . writeShellScriptBin " r i s c v 6 4 - l i n u x - g n u - g c c " ''
exec $ { lib . getBin pkgs . pkgsCross . riscv64 . buildPackages . gcc } /bin/riscv64-unknown-linux-gnu-gcc " $ @ "
'' )
pyEnv
( pkgs . writeShellScriptBin " p w n d b g " ''
exec $ { lib . getBin pkgs . gdb } /bin/gdb - - quiet - - command = " $ R E P O _ R O O T / g d b i n i t . p y " $ @
'' )
]
++ pkgs . lib . optionals isLLDB [
pkgs . lldb_19
pkgs . lldb_20
( pkgs . writeShellScriptBin " p w n d b g - l l d b " (
( lib . optionalString ( ! pkgs . stdenv . isDarwin ) ''
export LLDB_DEBUGSERVER_PATH = $ { lib . makeBinPath [ pkgs . lldb_20 ] } /lldb-server
'' )
+ ''
exec $ { lib . getBin pyEnv } /bin/python3 $ REPO_ROOT/pwndbg-lldb.py $ @
''
) )
] ;
shellHook = ''
export PWNDBG_VENV_PATH = " P W N D B G _ P L E A S E _ S K I P _ V E N V "
export PWNDBG_NO_AUTOUPDATE = 1
export PWNDBG_VENV_PATH = " ${ pyEnv } "
export ZIGPATH = " ${ pkgs . lib . getBin pkgs . zig_0_13 } / b i n / "
export REPO_ROOT = $ ( git rev-parse - - show-toplevel )
'' ;
} ;
}