Bug 417903. Don't crash if _SymGetLineFromAddr64 fails. r=benjamin,a=beltzner
git-svn-id: svn://10.0.0.236/trunk@246423 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -909,6 +909,10 @@ BOOL SymGetModuleInfoEspecial64(HANDLE aProcess, DWORD64 aAddr, PIMAGEHLP_MODULE
|
||||
DWORD displacement = 0;
|
||||
BOOL lineRes = FALSE;
|
||||
lineRes = _SymGetLineFromAddr64(aProcess, aAddr, &displacement, aLineInfo);
|
||||
if (!lineRes) {
|
||||
// Clear out aLineInfo to indicate that it's not valid
|
||||
memset(aLineInfo, 0, sizeof(*aLineInfo));
|
||||
}
|
||||
}
|
||||
|
||||
return retval;
|
||||
@@ -984,9 +988,12 @@ NS_DescribeCodeAddress(void *aPC, nsCodeAddressDetails *aDetails)
|
||||
PL_strncpyz(aDetails->library, modInfo.ModuleName,
|
||||
sizeof(aDetails->library));
|
||||
aDetails->loffset = (char*) aPC - (char*) modInfo.BaseOfImage;
|
||||
PL_strncpyz(aDetails->filename, lineInfo.FileName,
|
||||
sizeof(aDetails->filename));
|
||||
aDetails->lineno = lineInfo.LineNumber;
|
||||
|
||||
if (lineInfo.FileName) {
|
||||
PL_strncpyz(aDetails->filename, lineInfo.FileName,
|
||||
sizeof(aDetails->filename));
|
||||
aDetails->lineno = lineInfo.LineNumber;
|
||||
}
|
||||
}
|
||||
|
||||
ULONG64 buffer[(sizeof(SYMBOL_INFO) +
|
||||
|
||||
Reference in New Issue
Block a user