Searching for "how gdb breakpoints work" seems to have a few
relevant results :)

On Thu, Dec 2, 2021 at 9:59 AM Jiading Guo <[email protected]> wrote:

> Turning off builtin-unembedding helps!
>
> I'm curious about how gdb modify the code when a breakpoint is set. I
> couldn't find useful links about this after searching. Could you provide
> some hint? Thank you!
>
> On Thursday, December 2, 2021 at 4:35:26 PM UTC+8 [email protected]
> wrote:
>
>> gdb does modify the code when a breakpoint is set. My guess is,
>> builtin-unembedding for short builtin calls copies the modified code into
>> the v8 heap. You could try to disable short builtin calls.
>> https://source.chromium.org/chromium/chromium/src/+/main:v8/BUILD.gn;l=197;drc=38f97cae6bc93330b8ad916a3faefb8ec35352e1
>>
>> On Thu, Dec 2, 2021 at 9:08 AM Jiading Guo <[email protected]> wrote:
>>
>>> Hi all,
>>>
>>> I'm following [1] to debug builtins (specifically
>>> `InterpreterEntryTrampoline`) with gdb. But it segfaults when I step
>>> through the code. After checking the assembly it turns out that the
>>> instruction has been modified.
>>>
>>> The desired instructions provided by `--print-builtin-code` are as
>>> follows:
>>>
>>> kind = BUILTIN
>>> name = InterpreterEntryTrampoline
>>> compiler = unknown
>>> address = 0x171700005181
>>> ...
>>> Instructions (size = 1584)
>>> 0x171707687180   0 448b570b       movl r10,[rdi+0xb]
>>> 0x171707687184   4 4d03d6        REX.W addq r10,r14
>>> ...
>>>
>>> but as shown in gdb, %r10 is replaced with %edx in the first instruction:
>>>
>>> 0x223e07687181   mov  0xb(%rdi),%edx
>>> 0x223e07687184   add  %r14,%r10
>>> ...
>>>
>>> When I run the program without setting breakpoint on
>>> `Builtins_InterpreterEntryTrampoline` in gdb, it exits normally. [1]
>>> mentioned that "GDB modifies the binary". I'm wondering if gdb is modifying
>>> the memory content here? How can I prevent this?
>>>
>>> I also tried lldb, but after setting the breakpoint on
>>> `Builtins_InterpreterEntryTrampoline`, it didn't stop at this function.
>>>
>>> I'm using Ubuntu 20.04 with gdb 9.2 and lldb 10.0. Any help would be
>>> much appreciated.
>>>
>>> Regards,
>>> Jiading
>>>
>>>
>>> [1] https://v8.dev/docs/gdb
>>> [2] args.gn:
>>> is_component_build = true
>>> is_debug = true
>>> symbol_level = 2
>>> target_cpu = "x64"
>>> use_goma = false
>>> v8_enable_backtrace = true
>>> v8_enable_fast_mksnapshot = true
>>> v8_enable_slow_dchecks = true
>>> v8_optimized_debug = false
>>> ```
>>> [3] foo.js:
>>> function foo() { return 1; }
>>> foo();
>>> %OptimizeFunctionOnNextCall(foo);
>>> foo();
>>> foo();
>>>
>>> --
>>> --
>>> v8-dev mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-dev
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "v8-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/v8-dev/cc524ae3-1474-4a18-a420-6550459d2bf2n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/v8-dev/cc524ae3-1474-4a18-a420-6550459d2bf2n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/624810e1-d8d1-4735-9b60-f47a3dc9e2f0n%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/624810e1-d8d1-4735-9b60-f47a3dc9e2f0n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAH3p7oMJ-CKd9dKiF3kz4H0HQsyF%2BomJFzxWmA%3Dki3kpqOMi_w%40mail.gmail.com.

Reply via email to