π» Research
V8 Debug & GDB Plugin
In this article, we will write how to debug with GDB for V8.
Installation - GDB
# recommend: pwndbg or gef debugger
[GEF]
# using curl
$ bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
# using wget
$ bash -c "$(wget https://gef.blah.cat/sh -O -)"
# or manually
$ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
$ echo source ~/.gdbinit-gef.py >> ~/.gdbinit
Add Plugin - V8
- This assumes that the v8 repository was fetched in the previous post.
- If you haven't fetched the v8 repository yet, see the previous article.
vi ~/.gdbinit
# add line
source <v8path>/tools/gdb-v8-support.py
source <v8path>/tools/gdbinit
Start Debugging
- Navigate to the path to the built binaries in the v8 repository and run the following command
cd <v8path>/out/x64.release


![[a] object memory addr = 0x16d50004842d / addr map: 0x16d50004842d-0x1
*** Since v8 uses pointer compression, you can only view 32 address in memory.
* Pointer Compression: https://v8.dev/blog/pointer-compression**](https://prod-files-secure.s3.us-west-2.amazonaws.com/ddfb90e3-766a-4fa2-b58c-bd09d4b4e865/ea933ed9-9509-4096-a2da-7cf9e933fc8c/Screenshot_2024-05-09_at_11.14.43_AM.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466WMTIABIT%2F20260605%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260605T215049Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKr%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQCNGCRvEA3nm0IyOVl3aB5IaQpkUPKp%2B7dTr52wn1n6mQIgYPoPhtB4Bo%2Fa6%2FQYcTjxlT6tSKssFfqgUVc9GKkDimQq%2FwMIcxAAGgw2Mzc0MjMxODM4MDUiDHllyUmc3%2F4rAd8noCrcA2Xj35jRB430hHuVqg%2BI%2FT1RLlufyhCh6HAnP1m1PUUsLf17EkW%2Bl96uRHpF55crX0eI63a1fRhHfvBSGqCaTNZ54Oo0Sk%2F42bBTjYUL9cVuP7YuINbVMkiJHJvWApFKTpzMsk7bDg%2F46Xd%2B%2F7Qvl9LfPew4cIYZOpXSSXJEMI1DOEM%2FDn5Yv5Nh48FQwg8IO2Of1qLAqzr5y0XaWYidrFCf8cpbSCGGrodjDZ17M9SQjBt2JpCxcz36YhXZrq7258fG3yGMuWZVc66i5q5Qze%2BYf0g%2BzdAZ%2FqJzWfOr9sqexsmZ5snjtCKvw1bbmFP0iD%2BKnp%2FfrnJGzKFxZ3xAksqkw4jJuyNt3TYKj7ojV4F6ZtbQqIJ4Q%2FZYQe212sV%2FORhPuHPmuz4zN4zcOVX83vmfZiSTUmlCCNU9i2tW9cGr3x0v2DnAcmFgLt9nMtWPWHtN2Nsi2ZxATLB9J9oYKYdkRhK998%2FOGShxXsf9f36s3msb%2BdWhWuvIegALyVrtN5K3Sobfovm5lcNx3bK%2F3jBYRMb3UAGAEMZMrYIUr7lcOLqwHTKHHKj%2FOSeV4mNLEfi1KzEz0TJp3J3jGoo7q6WCMWAerqIodPP5BwWyF2WWaPcBINnAv2hK5FgnMN6gjNEGOqUBtFKxArJcH959yAXHFrS%2FBrSnGE4nj0wOO0aRQXrVfLVm2jZtWw2wUQbPk2un7x0KwIO6%2B7Hxx52dJWBAfyZUPJmRP983EVZgaE3adEsXcr2ePyCXMoS%2BuM%2FzNiGyJqOGH%2F615Y8o%2BEIeEGjvUQA9DHzRhhL8O0fZl28%2B01PPfe8kOoatRWyTMrYEb3iDrD4Q2LeJveuBoemPGf5zbZ9%2Fu9yeGFhz&X-Amz-Signature=7703090c6c62592e1ffb5d07aaf9e023899005a61cdb84cff0249a1d815ed208&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
