π» 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=ASIAZI2LB4664FHYJ6MS%2F20260414%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260414T081828Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJGMEQCIEoZfKPi0%2BPAMyZNpyt%2FAP4ca471ldh29oWFylokvH7uAiBWY1u5%2F9lZvila8j1yaaPYfB0VMoYyEgyb%2Bb%2BjNurqrCqIBAiI%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAAaDDYzNzQyMzE4MzgwNSIMPYL1fBWwcEnHDVITKtwD%2BiRimqb80gP1P2mgU3aj00dCX38nJ8cZwgPNEGtZmvde834LOoLykFK8bt3W4Xlj%2FIMJRB6aQtmxfuXEAg0ZC1PNCnkF6WSj9oOltJumTpXJIXNte8oI6aE%2BhCrNHPBBr2oaIxF760PQnWiwHAjw1OaGMZ8PHbnvG07eLhdGMJYiZlJaPqPDGZzOnPdBZVieQCGuyZnzzomknk3byghxAWmmr1lIxZZOrzp%2BaR90HLVrBMsrd7PD%2BEBLpZcKa3DSbBNihnrHGJZVQUkUjJGzUy7CyDJwFuLdnfcfREFjpUVRp%2F%2BsMZTBExa5dpAlXRmZHIH6OMgfIeuIgccTNvnwUFgjqA95eTHEXYV1PvQCg%2FMF8mVsCZvlon3a4zu4xG5YHVMAG48RvwIJxdC17WnAsgFUN4HApyKZKJR1uLDxmes7llCt2G%2FXwXmKmo8kyzs0LnsvG4B0iNowbBUYZ1FdCu0aMyqnAQ%2FlHDfsvESAmWi%2BGKKYWsGBZYvL8oCYM%2FC1QSYwGMNE6yOA4EqDCcBbfmSx0CfzutG2XZbVP4xPtZw%2BGxvzTQF%2BVklIhfZaX%2FzMN8F14IWLTMvkeRPpMWjWk6%2BJ%2BPXLCpBXUckiKocZaRMKyoP40OATgjEGTFEwl9D3zgY6pgHoHTMuVbXB6jHKnROe6cMgqRduS61aS0pQEIaegltt2SdkVHrX0Sc%2FL5mUrhzS6%2BHuYHO6O5dOzTtmZqmahOBHUxhk9NmsfjS%2FvvE64RABBQz8HRnCM%2BO9lbdXw5xF00pjmU4nYe9qF778dVVG2pwDSINZ5jz%2BvefPWho0%2BxGQRn%2Bta7rZyTQLsgcd%2Frtr6wuYG8A4KJOXaIOOiS7Mv74%2F2Siu6uA%2F&X-Amz-Signature=2f25ef6c622f267b30fad014d8d8bc3c4ab2c9da92fe9a332a42a079e8078989&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
