π» 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=ASIAZI2LB4665O2TF2EE%2F20260403%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260403T212408Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEML%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIF%2BtFzlK9%2FQJOs%2Fj8XuRGqY%2BXL2zpxt4KMMz5zswewewAiEAtDHz8A8%2BEazyFTyFYQ24zCVhiATAHyGyupcH3IJ5P%2BYqiAQIi%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2Mzc0MjMxODM4MDUiDAhwuSK8qyhvZZeeYSrcA1mqIKZMJFzIHdQcTqIkNo1GYaIsfNNqGn4%2BILfstya7TWgrn%2BVjxL4JYx38O9PNMgkDvDp%2BAEFB%2F7WjdH2IjRH3LkrE7oJWzfveEeuFMGxNHNjihL15RUu3Rcbqxs%2BgSro3irOwum6G9XtYW1sb0nwf78LrZ2fLXLTYApyoiZob7UGlSKUNBx1%2FZX4yI9kkvQmpClLp0KIhjaWKuucDfAm2rKLmcJs9dsPYjEE%2FK%2Bx3%2FJLBBAjWZOf0Nrekc3g5COR8zaREyK%2FPEIRT5FiROCaO4V4VWUJuR%2F2TvFwdg6Wm5lWPeemsKHfD%2BXRJ%2FN%2FNV5b07XqLRtIgWfZHWPiNiVx%2F874%2Bd3OshLGKtRN%2BxFLtQ2OCnEQV2dioyKctOFGi58F6pAIBUWys2kB4VE8DIhrSoJ7DIvDEQ%2FXpxQpcQfALBRofxXKaNNols6YmQ4MxqN5Tm6J8kQnSo2A58WftHWxfxDw9R6KVgbNCRGDHLgvVYGuROMjS0M7v8eiWN7lVcnjKSw8hqfrULhD4diNH3L4CHUZjmqdwVUqkk9zWrchFskAS7ymF8atl%2Bg%2BiKJRFKZE4lzGu6KMOP1J6wTydkMZlTXjkJQE%2F1C%2BjKFUw50pMr5iJs9K2TwOLpv6tMOmEwM4GOqUBVVIn57iZ%2F1%2FBqKmUY%2BUMGRtoFnm1pOanmVEbmypC3SK98lj2%2F22d5ahicNlX7nQxhZeK%2B2eI%2Fb3eqgRxgIsudKnZQR%2BegpKfSQzqZTIAyB55gm7ZZpjzJnTExjSN1c2NaHrG68lL64ujl3s1ZPErmWZ3YJpcyusRdA5DPRZLYenFfF8ckUw%2FpwZRsMMz2WvjGHDrPUwinzlks9bQO5tVk%2FTtRvTy&X-Amz-Signature=f0b1fca31c404f78d01158a45de9b2a23ee2d042943ab7f9517d0a2b4730c081&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
