💻 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=ASIAZI2LB466WBAI6NSO%2F20261110%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20261110T180038Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHoaCXVzLXdlc3QtMiJHMEUCIQDKIzNbZZXrCBzQkCyhLVwi0jFM1viduN0hA1qZKR9U2gIgHxRnbgd8WNWzG50VAHXTsAEGSa4Sm24%2FA%2F8cc9uYVGkq%2FwMIQxAAGgw2Mzc0MjMxODM4MDUiDBNa0z0t8i73WVft0CrcA1VZSm7Dg%2BtxE8zyuybj%2BGKGgTCJSdtb3cK0dW2VSDi8oaOtPdik602pCHFTzMZX8Uos2n4cGD0mEtzaYRTXqDFF2MBPeqmiO2ctrCrc7RGNd7gKyjOWVsADDUPlecp%2B5fMsmXpPL3Bx3RNgOOaZCsQWs5%2BnWftHGm22WQ5N9zWvQnbXi1gD7Pg8GlTIReUAkNPSwbAz8KcC8i59nQnzWwyt3OazLBK1ift730XRHaMk9uM%2FzH1dw9KGn6hxBx%2FXPnm95z4poACjA0KeepCUVBdEefS5FBd%2FidOnQXs7JWP3WKkr1XuAiysKcyZ9nXpIVUgFHuI3uHiDOhGg7hz2YtAcnru8Gg9SEJImc%2B1W%2FP5kc%2FDexhFQYQcUHOQLbX6cKdvt%2FIC%2FGf5Qi%2FXSrCgzxEzdSPLGbNjsBQUnS%2BCTEvzGyBgx6MuBOOybkA6G%2FpubZoQ5PtPYlX5Alad8X6f9y1Rym5hDAgadVMUMmMShnAipTSLCTjdMoJVEkDp0XtThSpNOCMtrJef7pMTomux8P%2FKst00wZALJ5PM%2FB%2BNKmd7f6rmUdDl%2FabC0Vzgkd1JpNw%2BbcMhvg%2FJo65wlN5NPUghv9rWGXwATgYuStg0QZY1HrFjNLgQ%2FadExDVpMMNmxzdcGOqUBygbLvMA7sWfj5T2WUjtB2RKO8Y6mvO8FNfAcY1R52Yqz7mfaRrE6FXFbmggyu6UR2X36jbPmtbChqr0ybRuzgXnjqTnchKWA0z96lIcX5w07FubSvsYpTtn8SFkH2oSh3oNMV2h6Ou4bxgWOmlsNFuwz0s4TCsVFSa6ueMvmYyoQ52fmlFBES08HqwS7iXMND9oJBEq0vc3aqa%2FR9DwEZS1pbBt2&X-Amz-Signature=8c6177e988a849b7408de7f0c8341ef59ad1299e60d5a1be2d255e2f6f6f5077&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
