Fall back to disassembly in case typecast fails.

Since some time now, we construct minimal dwarf image debug infos
for release images if they contain frame unwind information, in order
to allow using that to unwind the stack in as many cases as possible.
As such, it's  entirely possible that such an image may be asked for
statement information regarding a function that isn't in fact compiled
with debugging. As such, we need to simply fall back to disassembly
rather than failing entirely. Fixes setting breakpoints in such
functions (i.e. anything in a release version of libstdc++).
This commit is contained in:
Rene Gollent 2013-06-07 22:13:48 -04:00
parent 51e2dbe7f2
commit 07842a5be0

View File

@ -705,7 +705,8 @@ DwarfImageDebugInfo::GetStatement(FunctionDebugInfo* _function,
= dynamic_cast<DwarfFunctionDebugInfo*>(_function);
if (function == NULL) {
TRACE_LINES(" -> no dwarf function\n");
return B_BAD_VALUE;
// fall back to assembly
return fArchitecture->GetStatement(function, address, _statement);
}
AutoLocker<BLocker> locker(fLock);