Skip to content

Instantly share code, notes, and snippets.

Created September 25, 2015 13:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/0263dee0285f7e2a710b to your computer and use it in GitHub Desktop.
Save anonymous/0263dee0285f7e2a710b to your computer and use it in GitHub Desktop.
Stack trace of Chromium when glViewport gets executed from WebGL
#0 gfx::GLApiBase::glViewportFn (this=0x182605816b60, x=0, y=0, width=248, height=1078) at ../../ui/gl/gl_bindings_autogen_gl.cc:8006
#1 gpu::gles2::GLES2DecoderImpl::DoViewport (this=0x198a38b57c20, x=0, y=0, width=248, height=1078) at ../../gpu/command_buffer/service/gles2_cmd_decoder.cc:8259
#2 0x00007fffe9c78ee4 in gpu::gles2::GLES2DecoderImpl::HandleViewport (this=0x198a38b57c20, immediate_data_size=0, cmd_data=0x7fffd2cf6a88) at ../../gpu/command_buffer/service/gles2_cmd_decoder_autogen.h:3996
#3 0x00007fffe9c84928 in gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<false> (this=0x198a38b57c20, num_commands=20, buffer=0x7fffd2cf6a4c, num_entries=81, entries_processed=0x7fffffffb624) at ../../gpu/command_buffer/service/gles2_cmd_decoder.cc:4378
#4 0x00007fffe9c439bb in gpu::gles2::GLES2DecoderImpl::DoCommands (this=0x198a38b57c20, num_commands=20, buffer=0x7fffd2cf6a4c, num_entries=81, entries_processed=0x7fffffffb624) at ../../gpu/command_buffer/service/gles2_cmd_decoder.cc:4436
#5 0x00007fffe9bfa64f in gpu::CommandParser::ProcessCommands (this=0x198a38eb4620, num_commands=20) at ../../gpu/command_buffer/service/cmd_parser.cc:52
#6 0x00007fffe9c94e05 in gpu::GpuScheduler::PutChanged (this=0x198a38a193e0) at ../../gpu/command_buffer/service/gpu_scheduler.cc:75
#7 0x00007ffff36e45b5 in content::GpuCommandBufferStub::PutChanged (this=0x198a382d28e0) at ../../content/common/gpu/gpu_command_buffer_stub.cc:848
#8 0x00007ffff2982f81 in base::internal::RunnableAdapter<void (content::BrowserAccessibilityStateImpl::*)()>::Run (this=0x7fffffffba40, object=0x198a382d28e0) at ../../base/bind_internal.h:176
#9 0x00007ffff2a00db2 in base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (content::AppCacheServiceImpl::*)()>, base::internal::TypeList<content::AppCacheServiceImpl*> >::MakeItSo (runnable=..., args#0=0x198a382d28e0) at ../../base/bind_internal.h:293
#10 0x00007ffff36eb88d in base::internal::Invoker<base::IndexSequence<0ul>, base::internal::BindState<base::internal::RunnableAdapter<void (content::GpuCommandBufferStub::*)()>, void (content::GpuCommandBufferStub*), base::internal::TypeList<base::internal::UnretainedWrapper<content::GpuCommandBufferStub> > >, base::internal::TypeList<base::internal::UnwrapTraits<base::internal::UnretainedWrapper<content::GpuCommandBufferStub> > >, base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (content::GpuCommandBufferStub::*)()>, base::internal::TypeList<content::GpuCommandBufferStub*> >, void ()>::Run(base::internal::BindStateBase*) (base=0x198a38ae7170) at ../../base/bind_internal.h:346
#11 0x00007fffe9bc5fc8 in base::Callback<void ()>::Run() const (this=0x198a38a191d8) at ../../base/callback.h:396
#12 0x00007fffe9bfb167 in gpu::CommandBufferService::Flush (this=0x198a38a191a0, put_offset=740) at ../../gpu/command_buffer/service/command_buffer_service.cc:79
#13 0x00007ffff36e3ec3 in content::GpuCommandBufferStub::OnAsyncFlush (this=0x198a382d28e0, put_offset=740, flush_count=14, latency_info=std::__debug::vector of length 0, capacity 0) at ../../content/common/gpu/gpu_command_buffer_stub.cc:792
#14 0x00007ffff36db7db in base::DispatchToMethodImpl<content::GpuChannelManager, void (content::GpuChannelManager::*)(int, unsigned int, gpu::ValueState const&), int, unsigned int, gpu::ValueState, 0ul, 1ul, 2ul> (obj=0x198a382d28e0, method=(void (content::GpuChannelManager::*)(content::GpuChannelManager * const, int, unsigned int, const gpu::ValueState &)) 0x7ffff36e3c24 <content::GpuCommandBufferStub::OnAsyncFlush(int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > const&)>, arg=...) at ../../base/tuple.h:254
#15 0x00007ffff36e92c4 in base::DispatchToMethod<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > const&), int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > > (obj=0x198a382d28e0, method=(void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, int, unsigned int, const std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > &)) 0x7ffff36e3c24 <content::GpuCommandBufferStub::OnAsyncFlush(int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > const&)>, arg=...) at ../../base/tuple.h:261
#16 0x00007ffff36e7538 in GpuCommandBufferMsg_AsyncFlush::Dispatch<content::GpuCommandBufferStub, content::GpuCommandBufferStub, void, void (content::GpuCommandBufferStub::*)(int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > const&)> (msg=0x198a38cd2c00, obj=0x198a382d28e0, sender=0x198a382d28e0, parameter=0x0, func=(void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, int, unsigned int, const std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > &)) 0x7ffff36e3c24 <content::GpuCommandBufferStub::OnAsyncFlush(int, unsigned int, std::__debug::vector<ui::LatencyInfo, std::allocator<ui::LatencyInfo> > const&)>) at ../../content/common/gpu/gpu_messages.h:543
#17 0x00007ffff36df98b in content::GpuCommandBufferStub::OnMessageReceived (this=0x198a382d28e0, message=IPC::Message & of kind GpuMsgStart line 546 = {...}) at ../../content/common/gpu/gpu_command_buffer_stub.cc:283
#18 0x00007ffff37365ba in content::MessageRouter::RouteMessage (this=0x198a35ec0968, msg=IPC::Message & of kind GpuMsgStart line 546 = {...}) at ../../content/common/message_router.cc:54
#19 0x00007ffff36ccda8 in content::GpuChannel::HandleMessage (this=0x198a35ec08e0) at ../../content/common/gpu/gpu_channel.cc:716
#20 0x00007ffff2982f81 in base::internal::RunnableAdapter<void (content::BrowserAccessibilityStateImpl::*)()>::Run (this=0x7fffffffc3b0, object=0x198a35ec08e0) at ../../base/bind_internal.h:176
#21 0x00007ffff29c5b60 in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (base::CancelableCallback<void ()>::*)() const>, base::internal::TypeList<base::WeakPtr<base::CancelableCallback<void ()> > const&> >::MakeItSo(base::internal::RunnableAdapter<void (base::CancelableCallback<void ()>::*)() const>, base::WeakPtr<base::CancelableCallback<void ()> > const&) (runnable=..., weak_ptr=base::WeakPtr((base::CancelableCallback<void()> *)0x198a35ec08e0)) at ../../base/bind_internal.h:303
#22 0x00007ffff36d3a05 in base::internal::Invoker<base::IndexSequence<0ul>, base::internal::BindState<base::internal::RunnableAdapter<void (content::GpuChannel::*)()>, void (content::GpuChannel*), base::internal::TypeList<base::WeakPtr<content::GpuChannel> > >, base::internal::TypeList<base::internal::UnwrapTraits<base::WeakPtr<content::GpuChannel> > >, base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (content::GpuChannel::*)()>, base::internal::TypeList<base::WeakPtr<content::GpuChannel> const&> >, void ()>::Run(base::internal::BindStateBase*) (base=0x198a35db75d0) at ../../base/bind_internal.h:346
#23 0x00007fffec92b55e in base::Callback<void ()>::Run() const (this=0x7fffffffc788) at ../../base/callback.h:396
#24 0x00007fffec947be2 in base::debug::TaskAnnotator::RunTask (this=0x7fffffffd3a0, queue_function=0x7fffecb184a8 \"MessageLoop::PostTask\", pending_task=From OnScheduled()@../../content/common/gpu/gpu_channel.cc:564 = {...}) at ../../base/debug/task_annotator.cc:51
#25 0x00007fffec9a4708 in base::MessageLoop::RunTask (this=0x7fffffffd1b0, pending_task=From OnScheduled()@../../content/common/gpu/gpu_channel.cc:564 = {...}) at ../../base/message_loop/message_loop.cc:481
#26 0x00007fffec9a4818 in base::MessageLoop::DeferOrRunPendingTask (this=0x7fffffffd1b0, pending_task=From OnScheduled()@../../content/common/gpu/gpu_channel.cc:564 = {...}) at ../../base/message_loop/message_loop.cc:490
#27 0x00007fffec9a4d14 in base::MessageLoop::DoWork (this=0x7fffffffd1b0) at ../../base/message_loop/message_loop.cc:602
#28 0x00007fffec90d2cd in base::MessagePumpGlib::HandleDispatch (this=0x198a35c3c180) at ../../base/message_loop/message_pump_glib.cc:267
#29 0x00007fffec90cb03 in base::(anonymous namespace)::WorkSourceDispatch (source=0x198a35d5c480, unused_func=0x0, unused_data=0x0) at ../../base/message_loop/message_pump_glib.cc:109
#30 0x00007fffe7377e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffe7378048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffe73780ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fffec90d3af in base::MessagePumpGlib::Run (this=0x198a35c3c180, delegate=0x7fffffffd1b0) at ../../base/message_loop/message_pump_glib.cc:309
#34 0x00007fffec9a4364 in base::MessageLoop::RunHandler (this=0x7fffffffd1b0) at ../../base/message_loop/message_loop.cc:445
#35 0x00007fffeca01f40 in base::RunLoop::Run (this=0x7fffffffcba0) at ../../base/run_loop.cc:55
#36 0x00007fffec9a303a in base::MessageLoop::Run (this=0x7fffffffd1b0) at ../../base/message_loop/message_loop.cc:288
#37 0x00007ffff37643d3 in content::GpuMain (parameters=...) at ../../content/gpu/gpu_main.cc:383
#38 0x00007ffff291fdc2 in content::RunNamedProcessTypeMain (process_type=\"gpu-process\", main_function_params=..., delegate=0x7fffffffdb80) at ../../content/app/content_main_runner.cc:379
#39 0x00007ffff2921597 in content::ContentMainRunnerImpl::Run (this=0x198a35ce7650) at ../../content/app/content_main_runner.cc:804
#40 0x00007ffff291f37f in content::ContentMain (params=...) at ../../content/app/content_main.cc:19
#41 0x0000555555bc41eb in ChromeMain (argc=15, argv=0x7fffffffdcc8) at ../../chrome/app/chrome_main.cc:66
#42 0x0000555555bc41a0 in main (argc=15, argv=0x7fffffffdcc8) at ../../chrome/app/chrome_exe_main_aura.cc:17
#0 gpu::gles2::GLES2Implementation::Viewport (this=0x70e94b7fd20, x=0, y=0, width=991, height=1117) at ../../gpu/command_buffer/client/gles2_implementation_impl_autogen.h:2839
#1 0x00007fffe4de3230 in gpu_blink::WebGraphicsContext3DImpl::viewport (this=0x70e94e70560, a1=0, a2=0, a3=991, a4=1117) at ../../gpu/blink/webgraphicscontext3d_impl.cc:742
#2 0x00007fffe055fad0 in blink::WebGLRenderingContextBase::initializeNewContext() () from /home/mkollaro/src/chromium/src/out/Debug/lib/libmodules.so
#3 0x00007fffe0551e30 in blink::WebGLRenderingContext::Factory::create(blink::HTMLCanvasElement*, blink::CanvasContextCreationAttributes const&, blink::Document&) () from /home/mkollaro/src/chromium/src/out/Debug/lib/libmodules.so
#4 0x00007fffe2658626 in blink::HTMLCanvasElement::getCanvasRenderingContext(WTF::String const&, blink::CanvasContextCreationAttributes const&) () from /home/mkollaro/src/chromium/src/out/Debug/lib/libwebcore_shared.so
#5 0x00007fffe2658410 in blink::HTMLCanvasElement::getContext(blink::ScriptState*, WTF::String const&, blink::CanvasContextCreationAttributes const&) () from /home/mkollaro/src/chromium/src/out/Debug/lib/libwebcore_shared.so
#6 0x00007fffe1ade1eb in blink::HTMLCanvasElementV8Internal::getContextMethod(v8::FunctionCallbackInfo<v8::Value> const&) () from /home/mkollaro/src/chromium/src/out/Debug/lib/libwebcore_shared.so
#7 0x00007fffe1ade293 in blink::HTMLCanvasElementV8Internal::getContextMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) () from /home/mkollaro/src/chromium/src/out/Debug/lib/libwebcore_shared.so
#8 0x00007ffff115582f in v8::internal::FunctionCallbackArguments::Call (this=this@entry=0x7fffffffa6e0, f=f@entry=0x7fffe1ade26f <blink::HTMLCanvasElementV8Internal::getContextMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&)>) at ../../v8/src/arguments.cc:33
#9 0x00007ffff1197796 in v8::internal::HandleApiCallHelper<false> (isolate=isolate@entry=0x70e94944020, args=...) at ../../v8/src/builtins.cc:1009
#10 0x00007ffff11982eb in Builtin_Impl_HandleApiCall (isolate=0x70e94944020, args=...) at ../../v8/src/builtins.cc:1032
#11 v8::internal::Builtin_HandleApiCall (args_length=4, args_object=0x7fffffffa828, isolate=0x70e94944020) at ../../v8/src/builtins.cc:1028
...
(and about 20 more, but it seems like I don't have the debug symbols here)
@zcwang
Copy link

zcwang commented Sep 8, 2016

Could you teach me on how to dump call trace like your output? Thanks!

@wangxianzhu
Copy link

Two methods with a debug build:

  1. #include "base/debug/stack_trace.h"
    base::debug::StackTrace().Print();
  2. insert:
    NOTREACHED();
    to let it crash at the place.
    Or use a debugger and show stack trace at a break point

@zcwang
Copy link

zcwang commented Sep 9, 2016

Thanks for your sharing! Keep learning things from you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment