DH.J

πŸ’» Research

V8 Debug & GDB Plugin

In this article, we will write how to debug with GDB for V8.

Donghyeon JeongΒ·Β·37 min read

Installation - GDB

bash

# 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.

bash

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
image
image

![[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=ASIAZI2LB466YD4FUTC3%2F20260703%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260703T185648Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEsaCXVzLXdlc3QtMiJGMEQCIB231K3FxNfrZxcspfwuOI63ZYP3lWpS1wgIlYYfEIHVAiByimwHp8cKnRlePcPZRtp2c8n64mZ%2FB5vFr%2FAxKAQyPCr%2FAwgUEAAaDDYzNzQyMzE4MzgwNSIMGuzUrp5bNhqjs%2BA%2BKtwD1zMxU3PQLPUy0YkYf2WOwCrbw%2FZv2xmSw9%2BKsSXo2IIyRakBnsPRZ%2FTKs9TnGWxlxsILU9wtQ7aM99OrJvknVE8MhaCHpsdy9wm5qAHKo2TfivglTld3tT%2Fjl0mULxnuVRvLuC1EwXtdhzjItMf9S67YdgdUc1aQGOlKjF%2FdiJALfEG%2F6hYqTNucvglTCxAgynJ5bNJbHw9NeHjJWCeAItQkLKXlA%2BM0M9zHcY0o%2FTeEV4biW%2FOD5qfVuafmm7V16lBtyTF9crHphvTQqFVNwPGgzyUi1VJSHP%2B0SD3lpcGaO0XdS3fRtBWRIwoORsHnlxV%2BZOBCCXFIU9z7uQODka2KGapI9SctbpeCvMP6sQaO5RO8i%2FZtYwS4rktXIjEDMwG300muppD%2B7Q153RMVJRnDsqaaG%2BNyZHoZb9rHMnQmzUaPSjVwwSyIZwlAmYlh7agrA2ccv0hK4mr5mIGrukAMFHF6U37MQU19vPa6Ynn6MpfQuioHzTe0n%2FSVlcukrmawqKt%2FPkxb4klR7jc%2B7YdngV1Rgrfu2lOFcmMhNoR%2BxF6sgnnkmiJKnHJCDQ%2FjvxOeOUV16LwdVjAH%2F5EBPkIuFZw3osF1Sbck%2FTx1Q10TaVnO4wsqSiBQLMgwmoig0gY6pgFA6d7H%2BsGY27l8oz1%2BWDQSv8kh8MK3KxQM%2FBn9DQ45fDm4OQHiSt845IKD7VYnxYzvjwrFvhYnqGOekJVjo7yMBv4NeLUqk9QzqY4t8yBtoR3JvdbjNjzgJH%2BMvxNQKAGTz%2B2nox19ZIrMr8F4nlNdHKtgY1WVCaxrCS2a0oAbUaZNv%2BS6Zg350cUzKpNCsljIg0UN%2Fw%2BCQoYG30JezpmIZp%2Fz24Xh&X-Amz-Signature=51c897b89033cf3eebc85aa4041304a4cb82dabc8001ed8474b598005360d839&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

![elements = 0x16d5004841d

0x16d50004841c = map / 0x16d50004841c+0x8 = length](https://prod-files-secure.s3.us-west-2.amazonaws.com/ddfb90e3-766a-4fa2-b58c-bd09d4b4e865/b1acfb97-519c-48b0-817c-1fea4f6cc43b/Screenshot_2024-05-09_at_12.50.46_PM.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466YD4FUTC3%2F20260703%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260703T185648Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEsaCXVzLXdlc3QtMiJGMEQCIB231K3FxNfrZxcspfwuOI63ZYP3lWpS1wgIlYYfEIHVAiByimwHp8cKnRlePcPZRtp2c8n64mZ%2FB5vFr%2FAxKAQyPCr%2FAwgUEAAaDDYzNzQyMzE4MzgwNSIMGuzUrp5bNhqjs%2BA%2BKtwD1zMxU3PQLPUy0YkYf2WOwCrbw%2FZv2xmSw9%2BKsSXo2IIyRakBnsPRZ%2FTKs9TnGWxlxsILU9wtQ7aM99OrJvknVE8MhaCHpsdy9wm5qAHKo2TfivglTld3tT%2Fjl0mULxnuVRvLuC1EwXtdhzjItMf9S67YdgdUc1aQGOlKjF%2FdiJALfEG%2F6hYqTNucvglTCxAgynJ5bNJbHw9NeHjJWCeAItQkLKXlA%2BM0M9zHcY0o%2FTeEV4biW%2FOD5qfVuafmm7V16lBtyTF9crHphvTQqFVNwPGgzyUi1VJSHP%2B0SD3lpcGaO0XdS3fRtBWRIwoORsHnlxV%2BZOBCCXFIU9z7uQODka2KGapI9SctbpeCvMP6sQaO5RO8i%2FZtYwS4rktXIjEDMwG300muppD%2B7Q153RMVJRnDsqaaG%2BNyZHoZb9rHMnQmzUaPSjVwwSyIZwlAmYlh7agrA2ccv0hK4mr5mIGrukAMFHF6U37MQU19vPa6Ynn6MpfQuioHzTe0n%2FSVlcukrmawqKt%2FPkxb4klR7jc%2B7YdngV1Rgrfu2lOFcmMhNoR%2BxF6sgnnkmiJKnHJCDQ%2FjvxOeOUV16LwdVjAH%2F5EBPkIuFZw3osF1Sbck%2FTx1Q10TaVnO4wsqSiBQLMgwmoig0gY6pgFA6d7H%2BsGY27l8oz1%2BWDQSv8kh8MK3KxQM%2FBn9DQ45fDm4OQHiSt845IKD7VYnxYzvjwrFvhYnqGOekJVjo7yMBv4NeLUqk9QzqY4t8yBtoR3JvdbjNjzgJH%2BMvxNQKAGTz%2B2nox19ZIrMr8F4nlNdHKtgY1WVCaxrCS2a0oAbUaZNv%2BS6Zg350cUzKpNCsljIg0UN%2Fw%2BCQoYG30JezpmIZp%2Fz24Xh&X-Amz-Signature=db112230502b02604ad85e8efda67bfdaa3f97fd129e2bf9a00ec11982e5b4ff&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)