π» 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=ASIAZI2LB4667VV3XNCT%2F20260818%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260818T115127Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIC2FrF5%2FlO6fc9IWSw2ZIVGzgUf7q8VkR0Adiz%2FYpyreAiEAhKpxO2L1HiyTn%2FES7A57fKK34F4NyE98Q0HlC5DbXR8q%2FwMIXBAAGgw2Mzc0MjMxODM4MDUiDImygOKwAzQLRsLE4SrcA7acboqdNyyuhfNnST49RwYud12%2BFoRR3qv%2B7onKlJhN7AFZtFZ8uAUQL14CDQKCB%2BZGrqEBteGgiLRGWpndALn%2BJ2NyovjJUpZfe4qcVQpepVbApS1Zilc1c1pRFGJs%2B1YIXirqjApCOVGOu9mOwXwRb1ErZ5Y%2FlcTBZHF8Lw7cso3liaDTj8yXVEOKzXlyKghOKQ72oaZPiqyF3gYzipC%2Fy6l%2BICfzoeFGEf176nYNKG%2F5cuyX6wpWk%2B2DyOiuxU5NB%2Fj5FhxLZ%2Fbc1%2BwB4idkGOonuyjRKh5owcwqyPjYW9%2FE5hXmsB6I0PkzFrOod64WAYsiMKt0jpChWTbkq%2B9NEAD7kcIkSwiRqaaGeTYfSBg%2BK4mfXPpwN4BHGyDqubUMWSbI5qLuYtU1u0wNEOAOwAbuZ2nxFDcTkbwfXDlCi01LHqq%2B2htrgaFxgzejT6hyYRA7PEQ3g4ZyyMQbmzLkwfY4PydCT3nnSabelUT4lSz1pIoUgGEClyHwyOvVTmrdtN1e9Cxf2Lbar7GpDaP4z8TD9YdIg4weTyTxXHa0RMWFk%2Bz%2FCjDM33uPvR0o5XCWte%2F32LiHZSv9T%2Ft%2BCNSyFBJp4qYXdOYG%2F8WuIxgsqxLPzCk7KbsmXKWtMLH7kNQGOqUB7WhzICs1RRxXEMPv6EDlNQ2VcBxTE5ZtnDyXbf2dOhSLEtAgxGjiYnyIWRhHaJJtqt7HHOik3cQuXyJSim%2FMpeNC%2F%2FschPdoVdAnjNNuggalRY67RvP6sy89VqgVomGK8yb%2Bin0pR35tWCAS5Sr8aXWckxbz%2F6z7f8bWGtD%2FK0uSQt1i%2BS8TQr3%2Fd1Ob4omORVFu%2FhK%2Fv8nsja3CRN323YlM8Knu&X-Amz-Signature=f8646a54bc88077a90d947db6fc53c7f0d5517e75d5541e8f3a51daef03e81d0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
