π» 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=ASIAZI2LB466654STSWP%2F20260726%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260726T064106Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEGYaCXVzLXdlc3QtMiJHMEUCIEehWkAWERA1l859fdwQdHRpQCpMXqeVAmfe1QAjy4HqAiEAyxWJJBt%2FiJmhNYK6fN2orz7Y7IZ1Tv7xeC1ut0r2MRcq%2FwMILxAAGgw2Mzc0MjMxODM4MDUiDP1GRH63axX%2BX3SPWyrcAyyhR15H4IrRRVP9%2Bat%2Fneh5f84gr%2FodNiiOD7NoFJdF4wxvGNJkjK12Mmgqba1CWtLbzwYc5lR9V%2FbM9n8dinWE9pOEvg%2BCyqIvY9x%2FVwgSJgsFbPwZwM4%2BYOJHWwW4x3whdypo%2F9RlUHMg90zJzwSfx%2FblhqolkPmme2R6e03mxpCba%2BN9SlSOB%2Bp6r8LtBpYK8z%2FnCWZ2VBN7T3e7MgkPXrPxpWzD6Psp58yYr1IP16HFtL1pr83ckWJR6F1ffcU9qHQTN%2FAmWP3pE5sejVN8Dcr6KkgNfdBicuQH53JtisQiItDHjPQr3tax%2F4qghHFvStRI2MGYLS%2BM3AqQXrzqNlctKV5rPJUpeFfD9ob6Fw0xKogDliYlhOw%2B7M4KvFK%2BaXH1waZ4d1HSt7Y4vmKZpmepYA0TCuajV%2FoA2Yr2c%2FQmHltKEz5oStP%2B1MyGWMVRYKMoCfij5BEMdk04VbdjqtHdxS3u%2BKob8x4J9zH3S0346D6LAzo7zgkCWXsJghEr%2BDEWdNvokv6d6WqS02KHJe8%2BSmEVMIfvv7tljwCEbfvyGI4SdCKXRXTAuncaoB0zyx64b%2B4xemC9dqZBNQY%2F8UvTL5ccDDVdd4F%2FBSTkAIl8s5nY5bLtlFsNML%2FHltMGOqUB3jW7DCCzf1L7saUYbhpEgRO87gzPUzSuzAvuPRWkxDvCeQ2gkHkwB2mZeEVYVhHx6i32apuyG6GMyBRgOwIp9O3iC%2BQPlLHw66wDSrsDfj1ElIUJhRfBeaPY4pbFadLZeX0f7F8Ia1EBFuokClnYJuPgtd0jxmTN7FUPz9Qx6tDpjUTu%2FGiJrNqe0jySzUvUBkbyWRHAtppp%2FESSaNQa3SNSkeSB&X-Amz-Signature=db9e613e3c30b5dd282bffd58683cfc029007418f2edaaf2997636455380b616&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
