π» 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=ASIAZI2LB4663P5VRSHK%2F20260519%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260519T034345Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAQaCXVzLXdlc3QtMiJIMEYCIQD6n9A3HoESXfXuYu0ijoODKtwvtQ3zYBMWt0FBdfcMGQIhAPtVyMg6F0jKag3tFMuhyOnSy948PqMQa412K8Q2gPSGKogECM3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQABoMNjM3NDIzMTgzODA1Igz%2BVnrpOPQsNU%2F8uNEq3APHxjAWBrvEJJe5UE58dCW8hNOVJGSft4EvlrNiVUiwfmJc796AZyYRl6YdJ1wMpPe%2BEbuJCRMEYSQfR%2FTPn9ISCq82i7jPbwgmuJ5Pvh156WE0Gmbwzh1fRy5CkAjnoqlWQ6ey%2FE0myHiVZ9K5a4I99PCe1DjAnPMXYD0xpxtgLRloO0IYDpPRy%2BEb%2F9dOXLgbzrft0TFs1XZNcNi0pj79%2FvyJ2oJOQEubBfymzNmpbiM1VttDxFmwVwYkbjmgIxcseNios25iFFMPa7QP8xp6VNpnB4yQGbCL7diD5W56LjhMET%2FdIGy24hGBDYPVXNfTfyq1futQmsfjkhcJvGKe3UhXYkX3rx9eA6B6d40ySjWC4X4n5B4D48mNFmzaWkZSLPhDE%2BHhKKoA5g1E4BEo6ZymhS0rZOwok6AcDjgxglxn9dH%2FywOtw6s3kFrOLJ2ChCBMRiHqRRtlhl4B7UV%2BYA%2Bnc0gY1cmic72P5ZaxFp8iSn7WvFvJFRHUvheBZNZJUr7ThCl86uwwy%2FInSdAcLrSaEy2qtgRtI5VTPDJEe9qD7Xl4RX%2Bdgnh9PucXUEqeXe3hqYe9fxwRtIn2iI7m7L8HMp5HOCzY0OVDWth0vX7bC4le%2FzY6uvfurjDjt6%2FQBjqkAQgmIfhsex45oTKmyXQL6Lc0d6ql6i6h3m%2Bg1MN9gG4SMJwIZihJytf4hp4GsF2FqyY%2B%2F4jmgGXD15YKMItTqQCxqjUm6mi4UZsyLjASMo8RQRFXHWpLHZQuqN26lT7a04pTFqJrHlz2Zl%2Bi8xkQ2hg1HBvy5jfqsljjzpTXtJn%2F1cUOSFEc1MyS3FM2rnfcbP2GLbPnHgQS29jVfGVaie4R32sz&X-Amz-Signature=3ff99b5dcba6c0cf8f3dae05f1b4a2fe1f91aa11e80bba982834f171facd3aa2&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
