Skip to content

Commit

Permalink
crash report: fix report on 64bit
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed Jul 20, 2017
1 parent e7744bd commit 74407dc
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 24 deletions.
20 changes: 14 additions & 6 deletions src/app/main.cpp
Expand Up @@ -471,12 +471,6 @@ int main( int argc, char *argv[] )
#endif

#ifdef Q_OS_WIN
if ( !QgsApplication::isRunningFromBuildDir() )
{
QString symbolPath( getenv( "QGIS_PREFIX_PATH" ) );
symbolPath = symbolPath + "\\pdb;http://msdl.microsoft.com/download/symbols;http://download.osgeo.org/osgeo4w/symstore";
QgsStackTrace::setSymbolPath( symbolPath );
}
SetUnhandledExceptionFilter( QgsCrashHandler::handle );
#endif

Expand Down Expand Up @@ -800,6 +794,20 @@ int main( int argc, char *argv[] )
myApp.setWindowIcon( QIcon( QgsApplication::appIconPath() ) );
#endif

#ifdef Q_OS_WIN
if ( !QgsApplication::isRunningFromBuildDir() )
{
QString symbolPath( getenv( "QGIS_PREFIX_PATH" ) );
symbolPath = symbolPath + "\\pdb;http://msdl.microsoft.com/download/symbols;http://download.osgeo.org/osgeo4w/symstore";
QgsStackTrace::setSymbolPath( symbolPath );
}
else
{
QString symbolPath( getenv( "QGIS_PDB_PATH" ) );
symbolPath = symbolPath + ";http://msdl.microsoft.com/download/symbols;http://download.osgeo.org/osgeo4w/symstore";
QgsStackTrace::setSymbolPath( symbolPath );
}
#endif

//
// Set up the QSettings environment must be done after qapp is created
Expand Down
2 changes: 0 additions & 2 deletions src/app/qgsmaptoolfillring.cpp
Expand Up @@ -145,8 +145,6 @@ void QgsMapToolFillRing::cadCanvasReleaseEvent( QgsMapMouseEvent *e )
}
}

QgsRectangle bBox = g.boundingBox();

QgsExpressionContext context = vlayer->createExpressionContext();

QgsFeatureIterator fit = vlayer->getFeatures( QgsFeatureRequest().setFilterFid( fid ) );
Expand Down
30 changes: 14 additions & 16 deletions src/core/qgsstacktrace.cpp
Expand Up @@ -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 );
}
}
Expand Down

0 comments on commit 74407dc

Please sign in to comment.