Add a jss gdb macro that skips over the jitted stack in gdb

Use it like this:

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7f50d02c4700 (LWP 8152)]
base::debug::(anonymous namespace)::DebugBreak ()
    at ../../base/debug/debugger_posix.cc:230
230     }
(gdb) bt
    at ../../base/debug/debugger_posix.cc:230
...
    args_object=0x7f50d02bfe00, isolate=0x2f001c9e2020)
    at ../../v8/src/builtins/builtins-api.cc:123
...
(gdb) jss
(gdb) bt
    isolate=0x2f001c9e2020, is_construct=false, target=..., receiver=...,
    argc=1, args=0x7f50d02c0518, new_target=...)
    at ../../v8/src/execution.cc:111
    isolate=0x2f001c9e2020, callable=..., receiver=..., argc=1,
    argv=0x7f50d02c0518) at ../../v8/src/execution.cc:168
...

R=yangguo@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2186013002
Cr-Commit-Position: refs/heads/master@{#38121}
This commit is contained in:
jochen 2016-07-28 02:04:39 -07:00 committed by Commit bot
parent f3eff9344c
commit a811808432

View File

@ -56,5 +56,17 @@ Print the current JavaScript stack trace
Usage: jst
end
# Skip the JavaScript stack.
define jss
set $js_entry_sp=v8::internal::Isolate::Current()->thread_local_top()->js_entry_sp_
set $rbp=*(void**)$js_entry_sp
set $rsp=$js_entry_sp + 2*sizeof(void*)
set $pc=*(void**)($js_entry_sp+sizeof(void*))
end
document jss
Skip the jitted stack on x64 to where we entered JS last.
Usage: jss
end
set disassembly-flavor intel
set disable-randomization off