diff options
author | Luke Drummond <luke.drummond@codeplay.com> | 2016-11-09 19:20:39 +0000 |
---|---|---|
committer | Luke Drummond <luke.drummond@codeplay.com> | 2016-11-09 19:20:39 +0000 |
commit | 81fc84fa07cee81def3a6190e9b1e175087b9337 (patch) | |
tree | 00e15d6a9a01755f97ffacfcb64e78b28df32a23 /lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime | |
parent | 6b46a0d1e89aeef8af8e11d0def22e1a5ad15f20 (diff) | |
download | bcm5719-llvm-81fc84fa07cee81def3a6190e9b1e175087b9337.tar.gz bcm5719-llvm-81fc84fa07cee81def3a6190e9b1e175087b9337.zip |
[RenderScript] Fix reduction argument printing
When placing function name breakpoints on RenderScript Reduction kernel
functions, we were not skipping over the function prologue meaning that
inspection of the arguments could be garbled as the function was not finished
setting up the stack/registers.
In
[122fe8f](https://github.com/llvm-mirror/lldb/commit/122fe8f47255ec850155495d10526fccc51f95fb)
Aidan added the `SkipPrologue` function that allows us to trivially fix up the
kernel's functions' resolved addresses, falling gracefully back to the old
behaviour if we don't know how to handle the prologue or can't resolve its
size.
llvm-svn: 286387
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime')
-rw-r--r-- | lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp index d92f10014d1..ff9bf8ac418 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp @@ -883,6 +883,10 @@ RSReduceBreakpointResolver::SearchCallback(lldb_private::SearchFilter &filter, auto address = symbol->GetAddress(); if (filter.AddressPasses(address)) { bool new_bp; + if (!SkipPrologue(module, address)) { + if (log) + log->Printf("%s: Error trying to skip prologue", __FUNCTION__); + } m_breakpoint->AddLocation(address, &new_bp); if (log) log->Printf("%s: %s reduction breakpoint on %s in %s", __FUNCTION__, |