|
@@ -103,32 +103,30 @@ QVector<QgsStackTrace::StackLine> QgsStackTrace::trace( _EXCEPTION_POINTERS *Exc |
|
|
if ( SymFromAddr( process, ( DWORD64 )stack_frame.AddrPC.Offset, &displacement, symbol ) ) |
|
|
{ |
|
|
DWORD dwDisplacement; |
|
|
QString fileName; |
|
|
QString lineNumber; |
|
|
QString moduleName; |
|
|
if ( SymGetLineFromAddr( process, ( DWORD )( stack_frame.AddrPC.Offset ), &dwDisplacement, line ) ) |
|
|
|
|
|
QgsStackTrace::StackLine stackline; |
|
|
stackline.symbolName = QString( symbol->Name ); |
|
|
|
|
|
if ( SymGetLineFromAddr( process, ( DWORD64 ) stack_frame.AddrPC.Offset, &dwDisplacement, line ) ) |
|
|
{ |
|
|
fileName = QString( line->FileName ); |
|
|
lineNumber = QString::number( line->LineNumber ); |
|
|
stackline.fileName = QString( line->FileName ); |
|
|
stackline.lineNumber = QString::number( line->LineNumber ); |
|
|
} |
|
|
else |
|
|
{ |
|
|
fileName = "(unknown file)"; |
|
|
lineNumber = "(unknown line)"; |
|
|
stackline.fileName = "(unknown file)"; |
|
|
stackline.lineNumber = "(unknown line)"; |
|
|
} |
|
|
if ( SymGetModuleInfo( process, ( DWORD )( stack_frame.AddrPC.Offset ), module ) ) |
|
|
|
|
|
if ( SymGetModuleInfo( process, ( DWORD64 ) stack_frame.AddrPC.Offset, module ) ) |
|
|
{ |
|
|
moduleName = QString( module->ModuleName ); |
|
|
stackline.moduleName = module->ModuleName; |
|
|
} |
|
|
else |
|
|
{ |
|
|
moduleName = "(unknown module)"; |
|
|
stackline.moduleName = "(unknown module)"; |
|
|
} |
|
|
QgsStackTrace::StackLine stackline; |
|
|
stackline.moduleName = moduleName; |
|
|
stackline.fileName = fileName; |
|
|
stackline.lineNumber = lineNumber; |
|
|
stackline.symbolName = QString( symbol->Name ); |
|
|
|
|
|
stack.append( stackline ); |
|
|
} |
|
|
} |
|
|