hugsy / gef

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux
https://hugsy.github.io/gef
MIT License
7.07k stars 739 forks source link

Possible GEF `dereference` issue with `gef-remote` #1080

Open hyjun0407 opened 8 months ago

hyjun0407 commented 8 months ago

GEF+GDB version

GEF: (Standalone)
Blob Hash(/root/.gef-5927df4fb307124c444453b1cb85fa0ce79883c9.py): 5c187451f07ba303cd4bbb4973f5a6d9735b3e5c
SHA256(/root/.gef-5927df4fb307124c444453b1cb85fa0ce79883c9.py): baf1f0908e9513129661ccc6e39fbd31b42837cd9ab6362b00eda4991e09e7e2
GDB: 12.1
GDB-Python: 3.10

Operating System

WSL No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammy

Describe the issue you encountered

gW7o6wM qemu-aarch64-static -g 1234 ./prob When I run the command with and proceed to gef-remote localhost 1234 with gdb-multiarch, Stack View is not available as above. when i enter 'tele', it said [!] Unmapped address: '$sp' .

Do you read the docs and look at previously closed issues/PRs for similar cases?

No

Architecture impacted

Describe your issue. Without a proper reproduction step-by-step, your issue will be ignored.

qemu-aarch64-static -g 1234 ./prob When I run the command with and proceed to gef-remote localhost 1234 with gdb-multiarch, Stack View is not available as above. when i enter 'tele', it said [!] Unmapped address: '$sp' .

Minimalist test case

Use this field for a minimal code to compile and spot the issue:

// compile with gcc -fPIE -pic -o my_issue.out my_issue.c
int main(){ return 0; }

You can also provide a Dockerfile if you prefer

Additional context?

hugsy commented 8 months ago

Hi @hyjun0407

Try using the latest version of GEF from main and use the correct syntax from the docs.

joaoviictorti commented 7 months ago

Hi guys, I'm facing this same problem on ubuntu, and I don't understand why. I used kali linux and it was possible to see the stack view, but for some reason in ubuntu it is not possible to do this.

hugsy commented 6 months ago

Marked as stale as this needs more info. I cannot reproduce, if anyone can, update this issue with a full step by step.

stale[bot] commented 4 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. You can reopen it by adding a comment to this issue.

heinrich5991 commented 3 months ago

The same happens for me when I debug a local coredump.

gef➤  dereference $rsp
[!] Unmapped address: '$rsp'
gef➤  x/20g $rsp
0x7fff2d2fbc50: 0x0000003000000028  0x00007fff2d2fbd30
0x7fff2d2fbc60: 0x00007fff2d2fbc70  0x61f9ae278780fd00
0x7fff2d2fbc70: 0x0000000000000000  0x000057c7cce0f3a1
0x7fff2d2fbc80: 0x000057c7cce13220  0x000000000000004c
0x7fff2d2fbc90: 0x00007fff2d2fbee4  0x00000000fffffffd
0x7fff2d2fbca0: 0x0000000000000000  0x000057c7dcba01e0
0x7fff2d2fbcb0: 0x0000000000000016  0x000057c7dcba01e0
0x7fff2d2fbcc0: 0x000000002d2fbd00  0x0000000000000000
0x7fff2d2fbcd0: 0x000057c7dcba0bf1  0x0f00000000000001
0x7fff2d2fbce0: 0x00007fff2d2fbd20  0x00007fff2d2fc080

Maybe the issue happens when the program is not currently running locally? I can provide you with the coredump if needed.

heinrich5991 commented 3 months ago
It seems the stack is not marked as mapped in `info proc mappings`. ``` gef➤ info proc mappings Mapped address spaces: Start Addr End Addr Size Offset objfile 0x57c7ccdf9000 0x57c7ccdfd000 0x4000 0x0 /usr/bin/i3status 0x57c7ccdfd000 0x57c7cce0f000 0x12000 0x4000 /usr/bin/i3status 0x57c7cce0f000 0x57c7cce12000 0x3000 0x16000 /usr/bin/i3status 0x57c7cce12000 0x57c7cce13000 0x1000 0x19000 /usr/bin/i3status 0x57c7cce13000 0x57c7cce14000 0x1000 0x1a000 /usr/bin/i3status 0x70c58aa58000 0x70c58ae4a000 0x3f2000 0x0 /usr/lib/locale/locale-archive 0x70c58ae4e000 0x70c58ae51000 0x3000 0x0 /usr/lib/libcap.so.2.70 0x70c58ae51000 0x70c58ae56000 0x5000 0x3000 /usr/lib/libcap.so.2.70 0x70c58ae56000 0x70c58ae58000 0x2000 0x8000 /usr/lib/libcap.so.2.70 0x70c58ae58000 0x70c58ae59000 0x1000 0x9000 /usr/lib/libcap.so.2.70 0x70c58ae59000 0x70c58ae5a000 0x1000 0xa000 /usr/lib/libcap.so.2.70 0x70c58ae5a000 0x70c58ae5c000 0x2000 0x0 /usr/lib/libXdmcp.so.6.0.0 0x70c58ae5c000 0x70c58ae5e000 0x2000 0x2000 /usr/lib/libXdmcp.so.6.0.0 0x70c58ae5e000 0x70c58ae60000 0x2000 0x4000 /usr/lib/libXdmcp.so.6.0.0 0x70c58ae60000 0x70c58ae61000 0x1000 0x5000 /usr/lib/libXdmcp.so.6.0.0 0x70c58ae61000 0x70c58ae62000 0x1000 0x6000 /usr/lib/libXdmcp.so.6.0.0 0x70c58ae64000 0x70c58ae65000 0x1000 0x0 /usr/lib/libXau.so.6.0.0 0x70c58ae65000 0x70c58ae66000 0x1000 0x1000 /usr/lib/libXau.so.6.0.0 0x70c58ae66000 0x70c58ae67000 0x1000 0x2000 /usr/lib/libXau.so.6.0.0 0x70c58ae67000 0x70c58ae68000 0x1000 0x2000 /usr/lib/libXau.so.6.0.0 0x70c58ae68000 0x70c58ae69000 0x1000 0x3000 /usr/lib/libXau.so.6.0.0 0x70c58ae69000 0x70c58ae6d000 0x4000 0x0 /usr/lib/libvorbis.so.0.4.9 0x70c58ae6d000 0x70c58ae84000 0x17000 0x4000 /usr/lib/libvorbis.so.0.4.9 0x70c58ae84000 0x70c58ae95000 0x11000 0x1b000 /usr/lib/libvorbis.so.0.4.9 0x70c58ae95000 0x70c58ae96000 0x1000 0x2b000 /usr/lib/libvorbis.so.0.4.9 0x70c58ae96000 0x70c58ae97000 0x1000 0x2c000 /usr/lib/libvorbis.so.0.4.9 0x70c58ae97000 0x70c58ae9c000 0x5000 0x0 /usr/lib/libmp3lame.so.0.0.0 0x70c58ae9c000 0x70c58aece000 0x32000 0x5000 /usr/lib/libmp3lame.so.0.0.0 0x70c58aece000 0x70c58aede000 0x10000 0x37000 /usr/lib/libmp3lame.so.0.0.0 0x70c58aede000 0x70c58aee0000 0x2000 0x46000 /usr/lib/libmp3lame.so.0.0.0 0x70c58aee0000 0x70c58aee1000 0x1000 0x48000 /usr/lib/libmp3lame.so.0.0.0 0x70c58af0e000 0x70c58af12000 0x4000 0x0 /usr/lib/libmpg123.so.0.48.2 0x70c58af12000 0x70c58af4c000 0x3a000 0x4000 /usr/lib/libmpg123.so.0.48.2 0x70c58af4c000 0x70c58af67000 0x1b000 0x3e000 /usr/lib/libmpg123.so.0.48.2 0x70c58af67000 0x70c58af68000 0x1000 0x59000 /usr/lib/libmpg123.so.0.48.2 0x70c58af68000 0x70c58af69000 0x1000 0x5a000 /usr/lib/libmpg123.so.0.48.2 0x70c58af69000 0x70c58af6c000 0x3000 0x0 /usr/lib/libopus.so.0.10.1 0x70c58af6c000 0x70c58afd0000 0x64000 0x3000 /usr/lib/libopus.so.0.10.1 0x70c58afd0000 0x70c58b486000 0x4b6000 0x67000 /usr/lib/libopus.so.0.10.1 0x70c58b486000 0x70c58b48a000 0x4000 0x51c000 /usr/lib/libopus.so.0.10.1 0x70c58b48a000 0x70c58b48b000 0x1000 0x520000 /usr/lib/libopus.so.0.10.1 0x70c58b48b000 0x70c58b493000 0x8000 0x0 /usr/lib/libFLAC.so.12.1.0 0x70c58b493000 0x70c58b4c5000 0x32000 0x8000 /usr/lib/libFLAC.so.12.1.0 0x70c58b4c5000 0x70c58b4cd000 0x8000 0x3a000 /usr/lib/libFLAC.so.12.1.0 0x70c58b4cd000 0x70c58b4ce000 0x1000 0x42000 /usr/lib/libFLAC.so.12.1.0 0x70c58b4ce000 0x70c58b4cf000 0x1000 0x43000 /usr/lib/libFLAC.so.12.1.0 0x70c58b4cf000 0x70c58b4e3000 0x14000 0x0 /usr/lib/libvorbisenc.so.2.0.12 0x70c58b4e3000 0x70c58b4e6000 0x3000 0x14000 /usr/lib/libvorbisenc.so.2.0.12 0x70c58b4e6000 0x70c58b55d000 0x77000 0x17000 /usr/lib/libvorbisenc.so.2.0.12 0x70c58b55d000 0x70c58b579000 0x1c000 0x8d000 /usr/lib/libvorbisenc.so.2.0.12 0x70c58b579000 0x70c58b57a000 0x1000 0xa9000 /usr/lib/libvorbisenc.so.2.0.12 0x70c58b57c000 0x70c58b57e000 0x2000 0x0 /usr/lib/libogg.so.0.8.5 0x70c58b57e000 0x70c58b581000 0x3000 0x2000 /usr/lib/libogg.so.0.8.5 0x70c58b581000 0x70c58b584000 0x3000 0x5000 /usr/lib/libogg.so.0.8.5 0x70c58b584000 0x70c58b585000 0x1000 0x8000 /usr/lib/libogg.so.0.8.5 0x70c58b585000 0x70c58b586000 0x1000 0x9000 /usr/lib/libogg.so.0.8.5 0x70c58b586000 0x70c58b588000 0x2000 0x0 /usr/lib/libasyncns.so.0.3.1 0x70c58b588000 0x70c58b58b000 0x3000 0x2000 /usr/lib/libasyncns.so.0.3.1 0x70c58b58b000 0x70c58b58c000 0x1000 0x5000 /usr/lib/libasyncns.so.0.3.1 0x70c58b58c000 0x70c58b58d000 0x1000 0x5000 /usr/lib/libasyncns.so.0.3.1 0x70c58b58d000 0x70c58b58e000 0x1000 0x6000 /usr/lib/libasyncns.so.0.3.1 0x70c58b58e000 0x70c58b59f000 0x11000 0x0 /usr/lib/libsystemd.so.0.39.0 0x70c58b59f000 0x70c58b63e000 0x9f000 0x11000 /usr/lib/libsystemd.so.0.39.0 0x70c58b63e000 0x70c58b674000 0x36000 0xb0000 /usr/lib/libsystemd.so.0.39.0 0x70c58b674000 0x70c58b680000 0xc000 0xe5000 /usr/lib/libsystemd.so.0.39.0 0x70c58b680000 0x70c58b681000 0x1000 0xf1000 /usr/lib/libsystemd.so.0.39.0 0x70c58b682000 0x70c58b68e000 0xc000 0x0 /usr/lib/libxcb.so.1.1.0 0x70c58b68e000 0x70c58b6a2000 0x14000 0xc000 /usr/lib/libxcb.so.1.1.0 0x70c58b6a2000 0x70c58b6ab000 0x9000 0x20000 /usr/lib/libxcb.so.1.1.0 0x70c58b6ab000 0x70c58b6ac000 0x1000 0x28000 /usr/lib/libxcb.so.1.1.0 0x70c58b6ac000 0x70c58b6ad000 0x1000 0x29000 /usr/lib/libxcb.so.1.1.0 0x70c58b6ad000 0x70c58b6b5000 0x8000 0x0 /usr/lib/libsndfile.so.1.0.37 0x70c58b6b5000 0x70c58b711000 0x5c000 0x8000 /usr/lib/libsndfile.so.1.0.37 0x70c58b711000 0x70c58b72e000 0x1d000 0x64000 /usr/lib/libsndfile.so.1.0.37 0x70c58b72e000 0x70c58b731000 0x3000 0x81000 /usr/lib/libsndfile.so.1.0.37 0x70c58b731000 0x70c58b732000 0x1000 0x84000 /usr/lib/libsndfile.so.1.0.37 0x70c58b736000 0x70c58b73a000 0x4000 0x0 /usr/lib/libgcc_s.so.1 0x70c58b73a000 0x70c58b75e000 0x24000 0x4000 /usr/lib/libgcc_s.so.1 0x70c58b75e000 0x70c58b762000 0x4000 0x28000 /usr/lib/libgcc_s.so.1 0x70c58b762000 0x70c58b763000 0x1000 0x2b000 /usr/lib/libgcc_s.so.1 0x70c58b763000 0x70c58b764000 0x1000 0x2c000 /usr/lib/libgcc_s.so.1 0x70c58b764000 0x70c58b772000 0xe000 0x0 /usr/lib/libdbus-1.so.3.32.4 0x70c58b772000 0x70c58b7a0000 0x2e000 0xe000 /usr/lib/libdbus-1.so.3.32.4 0x70c58b7a0000 0x70c58b7b2000 0x12000 0x3c000 /usr/lib/libdbus-1.so.3.32.4 0x70c58b7b2000 0x70c58b7b4000 0x2000 0x4e000 /usr/lib/libdbus-1.so.3.32.4 0x70c58b7b4000 0x70c58b7b5000 0x1000 0x50000 /usr/lib/libdbus-1.so.3.32.4 0x70c58b7b5000 0x70c58b7ca000 0x15000 0x0 /usr/lib/pulseaudio/libpulsecommon-17.0.so 0x70c58b7ca000 0x70c58b812000 0x48000 0x15000 /usr/lib/pulseaudio/libpulsecommon-17.0.so 0x70c58b812000 0x70c58b839000 0x27000 0x5d000 /usr/lib/pulseaudio/libpulsecommon-17.0.so 0x70c58b839000 0x70c58b83b000 0x2000 0x84000 /usr/lib/pulseaudio/libpulsecommon-17.0.so 0x70c58b83b000 0x70c58b83c000 0x1000 0x86000 /usr/lib/pulseaudio/libpulsecommon-17.0.so 0x70c58b83c000 0x70c58b860000 0x24000 0x0 /usr/lib/libc.so.6 0x70c58b860000 0x70c58b9d1000 0x171000 0x24000 /usr/lib/libc.so.6 0x70c58b9d1000 0x70c58ba1f000 0x4e000 0x195000 /usr/lib/libc.so.6 0x70c58ba1f000 0x70c58ba23000 0x4000 0x1e3000 /usr/lib/libc.so.6 0x70c58ba23000 0x70c58ba25000 0x2000 0x1e7000 /usr/lib/libc.so.6 0x70c58ba2d000 0x70c58ba4e000 0x21000 0x0 /usr/lib/libasound.so.2.0.0 0x70c58ba4e000 0x70c58badf000 0x91000 0x21000 /usr/lib/libasound.so.2.0.0 0x70c58badf000 0x70c58bb08000 0x29000 0xb2000 /usr/lib/libasound.so.2.0.0 0x70c58bb08000 0x70c58bb10000 0x8000 0xda000 /usr/lib/libasound.so.2.0.0 0x70c58bb10000 0x70c58bb11000 0x1000 0xe2000 /usr/lib/libasound.so.2.0.0 0x70c58bb13000 0x70c58bb1a000 0x7000 0x0 /usr/lib/libnl-3.so.200.26.0 0x70c58bb1a000 0x70c58bb29000 0xf000 0x7000 /usr/lib/libnl-3.so.200.26.0 0x70c58bb29000 0x70c58bb31000 0x8000 0x16000 /usr/lib/libnl-3.so.200.26.0 0x70c58bb31000 0x70c58bb33000 0x2000 0x1d000 /usr/lib/libnl-3.so.200.26.0 0x70c58bb33000 0x70c58bb34000 0x1000 0x1f000 /usr/lib/libnl-3.so.200.26.0 0x70c58bb34000 0x70c58bb36000 0x2000 0x0 /usr/lib/libnl-genl-3.so.200.26.0 0x70c58bb36000 0x70c58bb38000 0x2000 0x2000 /usr/lib/libnl-genl-3.so.200.26.0 0x70c58bb38000 0x70c58bb39000 0x1000 0x4000 /usr/lib/libnl-genl-3.so.200.26.0 0x70c58bb39000 0x70c58bb3a000 0x1000 0x5000 /usr/lib/libnl-genl-3.so.200.26.0 0x70c58bb3a000 0x70c58bb3b000 0x1000 0x6000 /usr/lib/libnl-genl-3.so.200.26.0 0x70c58bb3b000 0x70c58bb48000 0xd000 0x0 /usr/lib/libpulse.so.0.24.3 0x70c58bb48000 0x70c58bb77000 0x2f000 0xd000 /usr/lib/libpulse.so.0.24.3 0x70c58bb77000 0x70c58bb8d000 0x16000 0x3c000 /usr/lib/libpulse.so.0.24.3 0x70c58bb8d000 0x70c58bb8f000 0x2000 0x51000 /usr/lib/libpulse.so.0.24.3 0x70c58bb8f000 0x70c58bb90000 0x1000 0x53000 /usr/lib/libpulse.so.0.24.3 0x70c58bb90000 0x70c58bb92000 0x2000 0x0 /usr/lib/libyajl.so.2.1.0 0x70c58bb92000 0x70c58bb98000 0x6000 0x2000 /usr/lib/libyajl.so.2.1.0 0x70c58bb98000 0x70c58bb9a000 0x2000 0x8000 /usr/lib/libyajl.so.2.1.0 0x70c58bb9a000 0x70c58bb9b000 0x1000 0x9000 /usr/lib/libyajl.so.2.1.0 0x70c58bb9b000 0x70c58bb9c000 0x1000 0xa000 /usr/lib/libyajl.so.2.1.0 0x70c58bb9c000 0x70c58bba0000 0x4000 0x0 /usr/lib/libconfuse.so.2.1.0 0x70c58bba0000 0x70c58bba7000 0x7000 0x4000 /usr/lib/libconfuse.so.2.1.0 0x70c58bba7000 0x70c58bbaa000 0x3000 0xb000 /usr/lib/libconfuse.so.2.1.0 0x70c58bbaa000 0x70c58bbab000 0x1000 0xe000 /usr/lib/libconfuse.so.2.1.0 0x70c58bbab000 0x70c58bbac000 0x1000 0xf000 /usr/lib/libconfuse.so.2.1.0 0x70c58bbac000 0x70c58bbba000 0xe000 0x0 /usr/lib/libm.so.6 0x70c58bbba000 0x70c58bc3d000 0x83000 0xe000 /usr/lib/libm.so.6 0x70c58bc3d000 0x70c58bc99000 0x5c000 0x91000 /usr/lib/libm.so.6 0x70c58bc99000 0x70c58bc9a000 0x1000 0xec000 /usr/lib/libm.so.6 0x70c58bc9a000 0x70c58bc9b000 0x1000 0xed000 /usr/lib/libm.so.6 0x70c58bce7000 0x70c58bce8000 0x1000 0x0 /usr/lib/ld-linux-x86-64.so.2 0x70c58bce8000 0x70c58bd11000 0x29000 0x1000 /usr/lib/ld-linux-x86-64.so.2 0x70c58bd11000 0x70c58bd1b000 0xa000 0x2a000 /usr/lib/ld-linux-x86-64.so.2 0x70c58bd1b000 0x70c58bd1d000 0x2000 0x34000 /usr/lib/ld-linux-x86-64.so.2 0x70c58bd1d000 0x70c58bd1f000 0x2000 0x36000 /usr/lib/ld-linux-x86-64.so.2 ```
But it is in `maintenance info sections`. ``` gef➤ maintenance info sections Exec file: `/usr/bin/i3status', file type elf64-x86-64. [0] 0x57c7ccdf9318->0x57c7ccdf9334 at 0x00000318: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS [1] 0x57c7ccdf9338->0x57c7ccdf9388 at 0x00000338: .note.gnu.property ALLOC LOAD READONLY DATA HAS_CONTENTS [2] 0x57c7ccdf9388->0x57c7ccdf93ac at 0x00000388: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS [3] 0x57c7ccdf93ac->0x57c7ccdf93cc at 0x000003ac: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS [4] 0x57c7ccdf93d0->0x57c7ccdf93f4 at 0x000003d0: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS [5] 0x57c7ccdf93f8->0x57c7ccdfa730 at 0x000003f8: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS [6] 0x57c7ccdfa730->0x57c7ccdfb3b6 at 0x00001730: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS [7] 0x57c7ccdfb3b6->0x57c7ccdfb550 at 0x000023b6: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS [8] 0x57c7ccdfb550->0x57c7ccdfb6c0 at 0x00002550: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS [9] 0x57c7ccdfb6c0->0x57c7ccdfc9c8 at 0x000026c0: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS [10] 0x57c7ccdfc9c8->0x57c7ccdfc9f0 at 0x000039c8: .relr.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS [11] 0x57c7ccdfd000->0x57c7ccdfd01b at 0x00004000: .init ALLOC LOAD READONLY CODE HAS_CONTENTS [12] 0x57c7ccdfd020->0x57c7cce0e3a3 at 0x00004020: .text ALLOC LOAD READONLY CODE HAS_CONTENTS [13] 0x57c7cce0e3a4->0x57c7cce0e3b1 at 0x000153a4: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS [14] 0x57c7cce0f000->0x57c7cce10b28 at 0x00016000: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS [15] 0x57c7cce10b28->0x57c7cce10cf4 at 0x00017b28: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS [16] 0x57c7cce10cf8->0x57c7cce11678 at 0x00017cf8: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS [17] 0x57c7cce124d0->0x57c7cce124d8 at 0x000194d0: .init_array ALLOC LOAD DATA HAS_CONTENTS [18] 0x57c7cce124d8->0x57c7cce124e0 at 0x000194d8: .fini_array ALLOC LOAD DATA HAS_CONTENTS [19] 0x57c7cce124e0->0x57c7cce12728 at 0x000194e0: .data.rel.ro ALLOC LOAD DATA HAS_CONTENTS [20] 0x57c7cce12728->0x57c7cce12978 at 0x00019728: .dynamic ALLOC LOAD DATA HAS_CONTENTS [21] 0x57c7cce12978->0x57c7cce12fe8 at 0x00019978: .got ALLOC LOAD DATA HAS_CONTENTS [22] 0x57c7cce13000->0x57c7cce13200 at 0x0001a000: .data ALLOC LOAD DATA HAS_CONTENTS [23] 0x57c7cce13200->0x57c7cce136e8 at 0x0001a200: .bss ALLOC [24] 0x00000000->0x00000036 at 0x0001a200: .comment READONLY HAS_CONTENTS [25] 0x00000000->0x00000014 at 0x0001a238: .gnu_debuglink READONLY HAS_CONTENTS Core file: `/var/tmp/coredump-d7rBwF', file type elf64-x86-64. [0] 0x00000000->0x00002604 at 0x00002180: note0 READONLY HAS_CONTENTS [1] 0x00000000->0x000000d8 at 0x00002204: .reg/2063433 HAS_CONTENTS [2] 0x00000000->0x000000d8 at 0x00002204: .reg HAS_CONTENTS [3] 0x00000000->0x00000080 at 0x00002394: .note.linuxcore.siginfo/2063433 HAS_CONTENTS [4] 0x00000000->0x00000080 at 0x00002394: .note.linuxcore.siginfo HAS_CONTENTS [5] 0x00000000->0x00000170 at 0x00002428: .auxv HAS_CONTENTS [6] 0x00000000->0x00001b6d at 0x000025ac: .note.linuxcore.file/2063433 HAS_CONTENTS [7] 0x00000000->0x00001b6d at 0x000025ac: .note.linuxcore.file HAS_CONTENTS [8] 0x00000000->0x00000200 at 0x00004130: .reg2/2063433 HAS_CONTENTS [9] 0x00000000->0x00000200 at 0x00004130: .reg2 HAS_CONTENTS [10] 0x00000000->0x00000440 at 0x00004344: .reg-xstate/2063433 HAS_CONTENTS [11] 0x00000000->0x00000440 at 0x00004344: .reg-xstate HAS_CONTENTS [12] 0x57c7ccdf9000->0x57c7ccdfa000 at 0x00005000: load1a ALLOC LOAD READONLY HAS_CONTENTS [13] 0x57c7ccdfa000->0x57c7ccdfd000 at 0x00006000: load1b ALLOC READONLY [14] 0x57c7ccdfd000->0x57c7cce0f000 at 0x00006000: load2 ALLOC READONLY CODE [15] 0x57c7cce0f000->0x57c7cce12000 at 0x00006000: load3 ALLOC READONLY [16] 0x57c7cce12000->0x57c7cce13000 at 0x00006000: load4 ALLOC LOAD READONLY HAS_CONTENTS [17] 0x57c7cce13000->0x57c7cce14000 at 0x00007000: load5 ALLOC LOAD HAS_CONTENTS [18] 0x57c7dcb95000->0x57c7dcbb6000 at 0x00008000: load6 ALLOC LOAD HAS_CONTENTS [19] 0x70c58aa58000->0x70c58ae4a000 at 0x00029000: load7 ALLOC READONLY [20] 0x70c58ae4a000->0x70c58ae4e000 at 0x00029000: load8 ALLOC LOAD HAS_CONTENTS [21] 0x70c58ae4e000->0x70c58ae4f000 at 0x0002d000: load9a ALLOC LOAD READONLY HAS_CONTENTS [22] 0x70c58ae4f000->0x70c58ae51000 at 0x0002e000: load9b ALLOC READONLY [23] 0x70c58ae51000->0x70c58ae56000 at 0x0002e000: load10 ALLOC READONLY CODE [24] 0x70c58ae56000->0x70c58ae58000 at 0x0002e000: load11 ALLOC READONLY [25] 0x70c58ae58000->0x70c58ae59000 at 0x0002e000: load12 ALLOC LOAD READONLY HAS_CONTENTS [26] 0x70c58ae59000->0x70c58ae5a000 at 0x0002f000: load13 ALLOC LOAD HAS_CONTENTS [27] 0x70c58ae5a000->0x70c58ae5b000 at 0x00030000: load14a ALLOC LOAD READONLY HAS_CONTENTS [28] 0x70c58ae5b000->0x70c58ae5c000 at 0x00031000: load14b ALLOC READONLY [29] 0x70c58ae5c000->0x70c58ae5e000 at 0x00031000: load15 ALLOC READONLY CODE [30] 0x70c58ae5e000->0x70c58ae60000 at 0x00031000: load16 ALLOC READONLY [31] 0x70c58ae60000->0x70c58ae61000 at 0x00031000: load17 ALLOC LOAD READONLY HAS_CONTENTS [32] 0x70c58ae61000->0x70c58ae62000 at 0x00032000: load18 ALLOC LOAD HAS_CONTENTS [33] 0x70c58ae62000->0x70c58ae64000 at 0x00033000: load19 ALLOC LOAD HAS_CONTENTS [34] 0x70c58ae64000->0x70c58ae65000 at 0x00035000: load20 ALLOC LOAD READONLY HAS_CONTENTS [35] 0x70c58ae65000->0x70c58ae66000 at 0x00036000: load21 ALLOC READONLY CODE [36] 0x70c58ae66000->0x70c58ae67000 at 0x00036000: load22 ALLOC READONLY [37] 0x70c58ae67000->0x70c58ae68000 at 0x00036000: load23 ALLOC LOAD READONLY HAS_CONTENTS [38] 0x70c58ae68000->0x70c58ae69000 at 0x00037000: load24 ALLOC LOAD HAS_CONTENTS [39] 0x70c58ae69000->0x70c58ae6a000 at 0x00038000: load25a ALLOC LOAD READONLY HAS_CONTENTS [40] 0x70c58ae6a000->0x70c58ae6d000 at 0x00039000: load25b ALLOC READONLY [41] 0x70c58ae6d000->0x70c58ae84000 at 0x00039000: load26 ALLOC READONLY CODE [42] 0x70c58ae84000->0x70c58ae95000 at 0x00039000: load27 ALLOC READONLY [43] 0x70c58ae95000->0x70c58ae96000 at 0x00039000: load28 ALLOC LOAD READONLY HAS_CONTENTS [44] 0x70c58ae96000->0x70c58ae97000 at 0x0003a000: load29 ALLOC LOAD HAS_CONTENTS [45] 0x70c58ae97000->0x70c58ae98000 at 0x0003b000: load30a ALLOC LOAD READONLY HAS_CONTENTS [46] 0x70c58ae98000->0x70c58ae9c000 at 0x0003c000: load30b ALLOC READONLY [47] 0x70c58ae9c000->0x70c58aece000 at 0x0003c000: load31 ALLOC READONLY CODE [48] 0x70c58aece000->0x70c58aede000 at 0x0003c000: load32 ALLOC READONLY [49] 0x70c58aede000->0x70c58aee0000 at 0x0003c000: load33 ALLOC LOAD READONLY HAS_CONTENTS [50] 0x70c58aee0000->0x70c58aee1000 at 0x0003e000: load34 ALLOC LOAD HAS_CONTENTS [51] 0x70c58aee1000->0x70c58af0e000 at 0x0003f000: load35 ALLOC [52] 0x70c58af0e000->0x70c58af0f000 at 0x0003f000: load36a ALLOC LOAD READONLY HAS_CONTENTS [53] 0x70c58af0f000->0x70c58af12000 at 0x00040000: load36b ALLOC READONLY [54] 0x70c58af12000->0x70c58af4c000 at 0x00040000: load37 ALLOC READONLY CODE [55] 0x70c58af4c000->0x70c58af67000 at 0x00040000: load38 ALLOC READONLY [56] 0x70c58af67000->0x70c58af68000 at 0x00040000: load39 ALLOC LOAD READONLY HAS_CONTENTS [57] 0x70c58af68000->0x70c58af69000 at 0x00041000: load40 ALLOC LOAD HAS_CONTENTS [58] 0x70c58af69000->0x70c58af6a000 at 0x00042000: load41a ALLOC LOAD READONLY HAS_CONTENTS [59] 0x70c58af6a000->0x70c58af6c000 at 0x00043000: load41b ALLOC READONLY [60] 0x70c58af6c000->0x70c58afd0000 at 0x00043000: load42 ALLOC READONLY CODE [61] 0x70c58afd0000->0x70c58b486000 at 0x00043000: load43 ALLOC READONLY [62] 0x70c58b486000->0x70c58b48a000 at 0x00043000: load44 ALLOC LOAD READONLY HAS_CONTENTS [63] 0x70c58b48a000->0x70c58b48b000 at 0x00047000: load45 ALLOC LOAD HAS_CONTENTS [64] 0x70c58b48b000->0x70c58b48c000 at 0x00048000: load46a ALLOC LOAD READONLY HAS_CONTENTS [65] 0x70c58b48c000->0x70c58b493000 at 0x00049000: load46b ALLOC READONLY [66] 0x70c58b493000->0x70c58b4c5000 at 0x00049000: load47 ALLOC READONLY CODE [67] 0x70c58b4c5000->0x70c58b4cd000 at 0x00049000: load48 ALLOC READONLY [68] 0x70c58b4cd000->0x70c58b4ce000 at 0x00049000: load49 ALLOC LOAD READONLY HAS_CONTENTS [69] 0x70c58b4ce000->0x70c58b4cf000 at 0x0004a000: load50 ALLOC LOAD HAS_CONTENTS [70] 0x70c58b4cf000->0x70c58b4d0000 at 0x0004b000: load51a ALLOC LOAD READONLY HAS_CONTENTS [71] 0x70c58b4d0000->0x70c58b4e3000 at 0x0004c000: load51b ALLOC READONLY [72] 0x70c58b4e3000->0x70c58b4e6000 at 0x0004c000: load52 ALLOC READONLY CODE [73] 0x70c58b4e6000->0x70c58b55d000 at 0x0004c000: load53 ALLOC READONLY [74] 0x70c58b55d000->0x70c58b579000 at 0x0004c000: load54 ALLOC LOAD READONLY HAS_CONTENTS [75] 0x70c58b579000->0x70c58b57a000 at 0x00068000: load55 ALLOC LOAD HAS_CONTENTS [76] 0x70c58b57a000->0x70c58b57c000 at 0x00069000: load56 ALLOC LOAD HAS_CONTENTS [77] 0x70c58b57c000->0x70c58b57d000 at 0x0006b000: load57a ALLOC LOAD READONLY HAS_CONTENTS [78] 0x70c58b57d000->0x70c58b57e000 at 0x0006c000: load57b ALLOC READONLY [79] 0x70c58b57e000->0x70c58b581000 at 0x0006c000: load58 ALLOC READONLY CODE [80] 0x70c58b581000->0x70c58b584000 at 0x0006c000: load59 ALLOC READONLY [81] 0x70c58b584000->0x70c58b585000 at 0x0006c000: load60 ALLOC LOAD READONLY HAS_CONTENTS [82] 0x70c58b585000->0x70c58b586000 at 0x0006d000: load61 ALLOC LOAD HAS_CONTENTS [83] 0x70c58b586000->0x70c58b587000 at 0x0006e000: load62a ALLOC LOAD READONLY HAS_CONTENTS [84] 0x70c58b587000->0x70c58b588000 at 0x0006f000: load62b ALLOC READONLY [85] 0x70c58b588000->0x70c58b58b000 at 0x0006f000: load63 ALLOC READONLY CODE [86] 0x70c58b58b000->0x70c58b58c000 at 0x0006f000: load64 ALLOC READONLY [87] 0x70c58b58c000->0x70c58b58d000 at 0x0006f000: load65 ALLOC LOAD READONLY HAS_CONTENTS [88] 0x70c58b58d000->0x70c58b58e000 at 0x00070000: load66 ALLOC LOAD HAS_CONTENTS [89] 0x70c58b58e000->0x70c58b58f000 at 0x00071000: load67a ALLOC LOAD READONLY HAS_CONTENTS [90] 0x70c58b58f000->0x70c58b59f000 at 0x00072000: load67b ALLOC READONLY [91] 0x70c58b59f000->0x70c58b63e000 at 0x00072000: load68 ALLOC READONLY CODE [92] 0x70c58b63e000->0x70c58b674000 at 0x00072000: load69 ALLOC READONLY [93] 0x70c58b674000->0x70c58b680000 at 0x00072000: load70 ALLOC LOAD READONLY HAS_CONTENTS [94] 0x70c58b680000->0x70c58b681000 at 0x0007e000: load71 ALLOC LOAD HAS_CONTENTS [95] 0x70c58b681000->0x70c58b682000 at 0x0007f000: load72 ALLOC [96] 0x70c58b682000->0x70c58b683000 at 0x0007f000: load73a ALLOC LOAD READONLY HAS_CONTENTS [97] 0x70c58b683000->0x70c58b68e000 at 0x00080000: load73b ALLOC READONLY [98] 0x70c58b68e000->0x70c58b6a2000 at 0x00080000: load74 ALLOC READONLY CODE [99] 0x70c58b6a2000->0x70c58b6ab000 at 0x00080000: load75 ALLOC READONLY [100] 0x70c58b6ab000->0x70c58b6ac000 at 0x00080000: load76 ALLOC LOAD READONLY HAS_CONTENTS [101] 0x70c58b6ac000->0x70c58b6ad000 at 0x00081000: load77 ALLOC LOAD HAS_CONTENTS [102] 0x70c58b6ad000->0x70c58b6ae000 at 0x00082000: load78a ALLOC LOAD READONLY HAS_CONTENTS [103] 0x70c58b6ae000->0x70c58b6b5000 at 0x00083000: load78b ALLOC READONLY [104] 0x70c58b6b5000->0x70c58b711000 at 0x00083000: load79 ALLOC READONLY CODE [105] 0x70c58b711000->0x70c58b72e000 at 0x00083000: load80 ALLOC READONLY [106] 0x70c58b72e000->0x70c58b731000 at 0x00083000: load81 ALLOC LOAD READONLY HAS_CONTENTS [107] 0x70c58b731000->0x70c58b732000 at 0x00086000: load82 ALLOC LOAD HAS_CONTENTS [108] 0x70c58b732000->0x70c58b736000 at 0x00087000: load83 ALLOC LOAD HAS_CONTENTS [109] 0x70c58b736000->0x70c58b737000 at 0x0008b000: load84a ALLOC LOAD READONLY HAS_CONTENTS [110] 0x70c58b737000->0x70c58b73a000 at 0x0008c000: load84b ALLOC READONLY [111] 0x70c58b73a000->0x70c58b75e000 at 0x0008c000: load85 ALLOC READONLY CODE [112] 0x70c58b75e000->0x70c58b762000 at 0x0008c000: load86 ALLOC READONLY [113] 0x70c58b762000->0x70c58b763000 at 0x0008c000: load87 ALLOC LOAD READONLY HAS_CONTENTS [114] 0x70c58b763000->0x70c58b764000 at 0x0008d000: load88 ALLOC LOAD HAS_CONTENTS [115] 0x70c58b764000->0x70c58b765000 at 0x0008e000: load89a ALLOC LOAD READONLY HAS_CONTENTS [116] 0x70c58b765000->0x70c58b772000 at 0x0008f000: load89b ALLOC READONLY [117] 0x70c58b772000->0x70c58b7a0000 at 0x0008f000: load90 ALLOC READONLY CODE [118] 0x70c58b7a0000->0x70c58b7b2000 at 0x0008f000: load91 ALLOC READONLY [119] 0x70c58b7b2000->0x70c58b7b4000 at 0x0008f000: load92 ALLOC LOAD READONLY HAS_CONTENTS [120] 0x70c58b7b4000->0x70c58b7b5000 at 0x00091000: load93 ALLOC LOAD HAS_CONTENTS [121] 0x70c58b7b5000->0x70c58b7b6000 at 0x00092000: load94a ALLOC LOAD READONLY HAS_CONTENTS [122] 0x70c58b7b6000->0x70c58b7ca000 at 0x00093000: load94b ALLOC READONLY [123] 0x70c58b7ca000->0x70c58b812000 at 0x00093000: load95 ALLOC READONLY CODE [124] 0x70c58b812000->0x70c58b839000 at 0x00093000: load96 ALLOC READONLY [125] 0x70c58b839000->0x70c58b83b000 at 0x00093000: load97 ALLOC LOAD READONLY HAS_CONTENTS [126] 0x70c58b83b000->0x70c58b83c000 at 0x00095000: load98 ALLOC LOAD HAS_CONTENTS [127] 0x70c58b83c000->0x70c58b83d000 at 0x00096000: load99a ALLOC LOAD READONLY HAS_CONTENTS [128] 0x70c58b83d000->0x70c58b860000 at 0x00097000: load99b ALLOC READONLY [129] 0x70c58b860000->0x70c58b9d1000 at 0x00097000: load100 ALLOC READONLY CODE [130] 0x70c58b9d1000->0x70c58ba1f000 at 0x00097000: load101 ALLOC READONLY [131] 0x70c58ba1f000->0x70c58ba23000 at 0x00097000: load102 ALLOC LOAD READONLY HAS_CONTENTS [132] 0x70c58ba23000->0x70c58ba25000 at 0x0009b000: load103 ALLOC LOAD HAS_CONTENTS [133] 0x70c58ba25000->0x70c58ba2d000 at 0x0009d000: load104 ALLOC LOAD HAS_CONTENTS [134] 0x70c58ba2d000->0x70c58ba2e000 at 0x000a5000: load105a ALLOC LOAD READONLY HAS_CONTENTS [135] 0x70c58ba2e000->0x70c58ba4e000 at 0x000a6000: load105b ALLOC READONLY [136] 0x70c58ba4e000->0x70c58badf000 at 0x000a6000: load106 ALLOC READONLY CODE [137] 0x70c58badf000->0x70c58bb08000 at 0x000a6000: load107 ALLOC READONLY [138] 0x70c58bb08000->0x70c58bb10000 at 0x000a6000: load108 ALLOC LOAD READONLY HAS_CONTENTS [139] 0x70c58bb10000->0x70c58bb11000 at 0x000ae000: load109 ALLOC LOAD HAS_CONTENTS [140] 0x70c58bb11000->0x70c58bb13000 at 0x000af000: load110 ALLOC LOAD HAS_CONTENTS [141] 0x70c58bb13000->0x70c58bb14000 at 0x000b1000: load111a ALLOC LOAD READONLY HAS_CONTENTS [142] 0x70c58bb14000->0x70c58bb1a000 at 0x000b2000: load111b ALLOC READONLY [143] 0x70c58bb1a000->0x70c58bb29000 at 0x000b2000: load112 ALLOC READONLY CODE [144] 0x70c58bb29000->0x70c58bb31000 at 0x000b2000: load113 ALLOC READONLY [145] 0x70c58bb31000->0x70c58bb33000 at 0x000b2000: load114 ALLOC LOAD READONLY HAS_CONTENTS [146] 0x70c58bb33000->0x70c58bb34000 at 0x000b4000: load115 ALLOC LOAD HAS_CONTENTS [147] 0x70c58bb34000->0x70c58bb35000 at 0x000b5000: load116a ALLOC LOAD READONLY HAS_CONTENTS [148] 0x70c58bb35000->0x70c58bb36000 at 0x000b6000: load116b ALLOC READONLY [149] 0x70c58bb36000->0x70c58bb38000 at 0x000b6000: load117 ALLOC READONLY CODE [150] 0x70c58bb38000->0x70c58bb39000 at 0x000b6000: load118 ALLOC READONLY [151] 0x70c58bb39000->0x70c58bb3a000 at 0x000b6000: load119 ALLOC LOAD READONLY HAS_CONTENTS [152] 0x70c58bb3a000->0x70c58bb3b000 at 0x000b7000: load120 ALLOC LOAD HAS_CONTENTS [153] 0x70c58bb3b000->0x70c58bb3c000 at 0x000b8000: load121a ALLOC LOAD READONLY HAS_CONTENTS [154] 0x70c58bb3c000->0x70c58bb48000 at 0x000b9000: load121b ALLOC READONLY [155] 0x70c58bb48000->0x70c58bb77000 at 0x000b9000: load122 ALLOC READONLY CODE [156] 0x70c58bb77000->0x70c58bb8d000 at 0x000b9000: load123 ALLOC READONLY [157] 0x70c58bb8d000->0x70c58bb8f000 at 0x000b9000: load124 ALLOC LOAD READONLY HAS_CONTENTS [158] 0x70c58bb8f000->0x70c58bb90000 at 0x000bb000: load125 ALLOC LOAD HAS_CONTENTS [159] 0x70c58bb90000->0x70c58bb91000 at 0x000bc000: load126a ALLOC LOAD READONLY HAS_CONTENTS [160] 0x70c58bb91000->0x70c58bb92000 at 0x000bd000: load126b ALLOC READONLY [161] 0x70c58bb92000->0x70c58bb98000 at 0x000bd000: load127 ALLOC READONLY CODE [162] 0x70c58bb98000->0x70c58bb9a000 at 0x000bd000: load128 ALLOC READONLY [163] 0x70c58bb9a000->0x70c58bb9b000 at 0x000bd000: load129 ALLOC LOAD READONLY HAS_CONTENTS [164] 0x70c58bb9b000->0x70c58bb9c000 at 0x000be000: load130 ALLOC LOAD HAS_CONTENTS [165] 0x70c58bb9c000->0x70c58bb9d000 at 0x000bf000: load131a ALLOC LOAD READONLY HAS_CONTENTS [166] 0x70c58bb9d000->0x70c58bba0000 at 0x000c0000: load131b ALLOC READONLY [167] 0x70c58bba0000->0x70c58bba7000 at 0x000c0000: load132 ALLOC READONLY CODE [168] 0x70c58bba7000->0x70c58bbaa000 at 0x000c0000: load133 ALLOC READONLY [169] 0x70c58bbaa000->0x70c58bbab000 at 0x000c0000: load134 ALLOC LOAD READONLY HAS_CONTENTS [170] 0x70c58bbab000->0x70c58bbac000 at 0x000c1000: load135 ALLOC LOAD HAS_CONTENTS [171] 0x70c58bbac000->0x70c58bbad000 at 0x000c2000: load136a ALLOC LOAD READONLY HAS_CONTENTS [172] 0x70c58bbad000->0x70c58bbba000 at 0x000c3000: load136b ALLOC READONLY [173] 0x70c58bbba000->0x70c58bc3d000 at 0x000c3000: load137 ALLOC READONLY CODE [174] 0x70c58bc3d000->0x70c58bc99000 at 0x000c3000: load138 ALLOC READONLY [175] 0x70c58bc99000->0x70c58bc9a000 at 0x000c3000: load139 ALLOC LOAD READONLY HAS_CONTENTS [176] 0x70c58bc9a000->0x70c58bc9b000 at 0x000c4000: load140 ALLOC LOAD HAS_CONTENTS [177] 0x70c58bc9b000->0x70c58bc9d000 at 0x000c5000: load141 ALLOC LOAD HAS_CONTENTS [178] 0x70c58bce0000->0x70c58bce1000 at 0x000c7000: load142 ALLOC LOAD HAS_CONTENTS [179] 0x70c58bce1000->0x70c58bce5000 at 0x000c8000: load143 ALLOC LOAD READONLY HAS_CONTENTS [180] 0x70c58bce5000->0x70c58bce7000 at 0x000cc000: load144 ALLOC LOAD READONLY CODE HAS_CONTENTS [181] 0x70c58bce7000->0x70c58bce8000 at 0x000ce000: load145 ALLOC LOAD READONLY HAS_CONTENTS [182] 0x70c58bce8000->0x70c58bd11000 at 0x000cf000: load146 ALLOC READONLY CODE [183] 0x70c58bd11000->0x70c58bd1b000 at 0x000cf000: load147 ALLOC READONLY [184] 0x70c58bd1b000->0x70c58bd1d000 at 0x000cf000: load148 ALLOC LOAD READONLY HAS_CONTENTS [185] 0x70c58bd1d000->0x70c58bd1f000 at 0x000d1000: load149 ALLOC LOAD HAS_CONTENTS [186] 0x7fff2d2e6000->0x7fff2d307000 at 0x000d3000: load150 ALLOC LOAD HAS_CONTENTS [187] 0xffffffffff600000->0xffffffffff601000 at 0x000f4000: load151 ALLOC LOAD READONLY CODE HAS_CONTENTS ```
heinrich5991 commented 3 months ago

I'd guess it's caused by #1046.

(In support of this, the bug appears with version 2024.06 but not in 2024.01.)

stale[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. You can reopen it by adding a comment to this issue.

heinrich5991 commented 1 month ago

.

Grazfather commented 1 month ago

@heinrich5991 can you try reverting that one PR to confirm if it's that issue?

If it's not the gef.memory.maps then we will indeed spit that out. I don't know why info proc mappings would not include the range that includes the stack.

heinrich5991 commented 1 month ago

I bisected the issue between 2024.01 and 2024.06 to find that c9a8b18808f06bb2e8c7fdb6de5a3dafcbfa7c56 is indeed the first commit with this bug.

c9a8b18808f06bb2e8c7fdb6de5a3dafcbfa7c56 is the first bad commit
commit c9a8b18808f06bb2e8c7fdb6de5a3dafcbfa7c56 (HEAD)
Author: crazy hugsy <hugsy@users.noreply.github.com>
Date:   Sat Jan 20 10:37:32 2024 -0800

    Use `info proc mapping` (#1046)

    ## Description

    Use `info proc mapping` as a first memory layout enumeration technique.

    Removed `maintenance info sections` which is not about memory layout

    Restore CI coverage (#1050)

 .github/workflows/coverage.yml |  74 +++++++-----------------------
 .github/workflows/validate.yml |   8 ++--
 gef.py                         | 109 +++++++++++++++++++++++++-------------------
 tests/api/gef_memory.py        | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/api/misc.py              |  77 +------------------------------
 tests/base.py                  |   9 +++-
 tests/utils.py                 |  27 ++++++++---
 7 files changed, 259 insertions(+), 192 deletions(-)
 create mode 100644 tests/api/gef_memory.py

Easily reverting that commit wasn't possible on master:

$ git revert c9a8b18
Auto-merging .github/workflows/validate.yml
CONFLICT (content): Merge conflict in .github/workflows/validate.yml
Auto-merging gef.py
CONFLICT (content): Merge conflict in gef.py
CONFLICT (modify/delete): tests/api/gef_memory.py deleted in parent of c9a8b18 (Use `info proc mapping` (#1046)) and modified in HEAD.  Version HEAD of tests/api/gef_memory.py left in tree.
Auto-merging tests/api/misc.py
Auto-merging tests/utils.py
error: could not revert c9a8b18... Use `info proc mapping` (#1046)
heinrich5991 commented 1 month ago

Reproduction:

#include <stdlib.h>
int main() {
        abort();
}
$ gcc a.c
$ ./a.out
$ gdb a.out core.*
gef➤  dereference $rsp
[!] Unmapped address: '$rsp'
gef➤  x/20gx $rsp
0x7fff55ef4d10: 0x0100000000000008  0x69b6c0d46a2eeb00
0x7fff55ef4d20: 0x0000000000800000  0x0000000000000006
0x7fff55ef4d30: 0x0000702e1d092740  0x0000000000000000
0x7fff55ef4d40: 0x0000702e1d30b000  0x00005836e3598dd8
0x7fff55ef4d50: 0x00007fff55ef4d70  0x0000702e1d0d2120
0x7fff55ef4d60: 0x0000000000000040  0x0000702e1d27db50
0x7fff55ef4d70: 0x00007fff55ef4e30  0x0000702e1d0b94c3
0x7fff55ef4d80: 0x0000000000000020  0x0000000000000004
0x7fff55ef4d90: 0x0000000000000040  0x0000000000000800
0x7fff55ef4da0: 0x0000000000400000  0x0000000000000800

@Grazfather Could the https://github.com/hugsy/gef/labels/need-more-info label be removed if that's the one triggering the stale bot?

Grazfather commented 1 month ago

OK yeah I can reproduce.

That is annoying. Why would info proc mapping not show the stack when debugging a core file?

hugsy commented 3 weeks ago

I had time to root cause this. AFAICT the issues reported by @heinrich5991 and @hyjun0407 are different.

What @hyjun0407 reported is now being fixed in #1151 (not merged yet). It was coming from a bad support of qemu-user. This PR improves it and offers the possibility to use a mock layout if none was reported by qemu (for old versions). So this issue is now on the process of being fixed.

@heinrich5991 issue is specific to coredumps, which do not store stack layout in info proc maps but in maintenance info sections as @heinrich5991 rightfully pointed out. FWIW this could be worked around trivially by adding a stack Section to GEF for instance as such:

gef➤  pi p=gef.arch.sp & ~0xfff
gef➤  pi gef.memory.maps.append( Section(page_start=p, page_end=p+0x1000, permission=Permission.ALL, path="[stack]") )

This is not a perfect solution but it's worth commenting, because those 2 issues are different despite seemingly similar.

hugsy commented 3 weeks ago

Update: As #1151 is on its way to be merged and fix the initial issue reported by @hyjun0407 I have created another issue for the one reported by @heinrich5991 under https://github.com/hugsy/gef/issues/1154