Don't let PDBSourceLineWriter::GetSymbolFunctionName return empty function names
It's possible for `IDiaSymbol::get_name` to return S_OK and provide and empty string. I haven't figured out the exact root cause yet (the symbols in question are coming from the Rust standard library), but FUNC lines with missing function names break the processor and so we should never do it. This change makes it output "<name omitted>" which matches the behavior of the DWARF dumping code. R=mark@chromium.org BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1272278 Review URL: https://codereview.chromium.org/1985643004 .
This commit is contained in:
parent
a875991e73
commit
67d5567177
@ -975,6 +975,16 @@ bool PDBSourceLineWriter::GetSymbolFunctionName(IDiaSymbol *function,
|
||||
fprintf(stderr, "failed to get function name\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// It's possible for get_name to return an empty string, so
|
||||
// special-case that.
|
||||
if (wcscmp(*name, L"") == 0) {
|
||||
SysFreeString(*name);
|
||||
// dwarf_cu_to_module.cc uses "<name omitted>", so match that.
|
||||
*name = SysAllocString(L"<name omitted>");
|
||||
return true;
|
||||
}
|
||||
|
||||
// If a name comes from get_name because no undecorated form existed,
|
||||
// it's already formatted properly to be used as output. Don't do any
|
||||
// additional processing.
|
||||
|
Loading…
Reference in New Issue
Block a user