π» 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=ASIAZI2LB466XH4SIQYH%2F20260217%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260217T001650Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHgaCXVzLXdlc3QtMiJHMEUCIDr8Svg9rvspQOtjIilj%2FxzbKaJ5Y11nYHm9sjm4%2F81XAiEAo30y%2Fl8tP9vwz6xfRNJ6sXo%2Bh2hNnepOpjeTthaPhDMq%2FwMIQBAAGgw2Mzc0MjMxODM4MDUiDOBFGelieDx3C10RzSrcAyu21dXTfKqgMO6bHcUjexDYMw9c1N%2Ffktd6aLsIDFadq27NaM45NvrT58eVnPuM77bAfw5S9LXl24Id4TFqIi07gfBI78Zm25ycuG4Xx%2BlzlXgnFi9l4nbEH2WqiAriMM%2B8NsfsHjexpYTe%2FaHNwwQOW7uMiLbg9%2BbVWUqOz93peprVybVokITcy6SHnGOzETj5Ubub1v%2FZ7HA6uFEtg0saTI1QK9sOewC30pjKbsarKhu%2FaJFZzLOdWW4PtEb48hJ4hnZsbztl20HxV11T1QsRTUhM6jBxM0dYAIGuVooTh%2Fo6xZHrlNWkRj6WiVgSVozxw1dfL7JhXtWFAD%2BIt06HI6AumFI0bVOwxQ2TDEZUhb29bYQJDM6wVrlY2hCV3GRJPrlGRpP5g7vTgZLSmlAaBFzU89Dumval5F227D15N%2BKjJjSnwlVlqoAvqmOme3kXSMIM%2FR00vpVDFhlxcHpkWmtnOCKsAaadhPcijn7CSJk4xKQ%2BLcjUuzDXsxKu%2FGlMQUEf5C00mAiXUjiF1ZUgYtgW1h8ekNpSg%2BxjPDcoPOUK%2F78WGIqHZOb2b2nwQZ10Q6C1e6OcIWyP%2BdUTEjmtA3bI8k%2Fhh9cjBWbZM3%2FlI523z5KLY%2BzCqH77MLHLzswGOqUBbIWz1cMSS%2BllvwyaWkJXm9Wt6xckkmO6cGqivSi4h7PEiTXp5N3UMcqXV%2BzCdbNamvsLGP5CxEK%2BfzFIgwy%2F%2FiOBya7F%2FTts1YjeheQM8A1L%2FE5oCuFOud9bHlU0iFXWri5NXDnaJaJ2G9u9y7tZn72vuTLONhAXH4evoHwQZeojFIrvaI%2Bqo%2Fovvm7MvSmykUFqg4wSoRd7OOlOkgtYePXxPjp%2F&X-Amz-Signature=7c9782dd9bdf17772349f396c6c8d7d039016ab5a504d05df7796806646b5591&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
