π» 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=ASIAZI2LB466YRHJSDNV%2F20260309%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260309T224534Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aCXVzLXdlc3QtMiJHMEUCIHZHjEgIEuT%2B%2Bk%2F54lDXfV8NhJl3AUPKxPiR4LIBIP0UAiEA9ppD7Z03U%2FJt70UDDni3%2Bh9iLa9yKfyjfkVdL2Sbqw8q%2FwMINxAAGgw2Mzc0MjMxODM4MDUiDM9QSdrfm00mxjw8ACrcA9xPPcIlPX6yw09ujx4TP8%2BAmVhbsUP%2BpCJlsrP9Wp7pHpzAK52HKllHa9%2FKg1zuiu4%2BVoIbPrqVeZm8D%2Ba3FSo2E5i%2Fb%2FKgOrRklZPRLngu5IB6KGkHjjW8Sd4Ob%2BxDs9zVXeb6Y3BD3W3dgboyi6jLNwJE4Dhok7LpmKU6hRCw5MzqNdvKB1VydN01vSvqDXswlHpQVI3ffN3h%2B9D9es0uibnxqVmFZDF0yH5uj3%2BSneTARvrOvW3Q60aiBf3IIYESp0rqjWXzX99AIjBO9WPVXabplc2LgEbomWfj27HtPyjk0VcEMMgOPW1cJz0RHdNgH2YvQZkdkTniIm45yP23oN%2BhjCLV1Fkr%2BljYo1a7c7b%2BW9GmvIXGtsPiCFTJDfVFAsZcitE8V%2B8WG2EM1wfkk2y6BQWtyzxtHFEa783XdIPs7mZ1pAYzD7eelCyrXx9Vq72p%2BogztB7tM5I%2BxVAfoFgGdUHBz6n75bo4uqXc4u4ECHFLWIIHHkqbWlfRhFZVhdBBJjvrzBEPmA3vQIfWFk1YrzkjjnGcfMukHwaRpuzzYRrtTArDlc%2FRkz7KHNQOb6NOXeB29p%2FYaw7Z1BZVlSw2YQhBncZbg0kaoxz5cXWxSamhpKIsppndMLiEvc0GOqUBu%2B0htilpJNjdWBQqylNdKuIjbUGFsNSH0GUwSTvRRZbJbuty9KZOAtMibIQ5rCTjLvNBllTsxeP18cUFox2rSkaCT29DzQ8Sj4NULJ5rNIf6jd98ntuedh3ga9HmnYmqYgfieNKIcjUqr4o1npjcJBttejQgGU2BCAQisfn%2FdDewBMxXwDnqMbab8KIIH38RkxpRVCdxmVitQPA4l99z9hwz5pRP&X-Amz-Signature=a73bdd326aaf5a9d1437f1cbc36471e3cf55b2a86327268331c703d5cd0ae9a8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
