diff --git a/src/parser/backtraceparsergdb.cpp b/src/parser/backtraceparsergdb.cpp --- a/src/parser/backtraceparsergdb.cpp +++ b/src/parser/backtraceparsergdb.cpp @@ -129,13 +129,13 @@ if (!fileName().isEmpty()) { r = Good; } else if (!libraryName().isEmpty()) { - if (functionName() == QLatin1String("??")) { + if (functionName() == QLatin1String("??") || functionName().isEmpty()) { r = MissingFunction; } else { r = MissingSourceFile; } } else { - if (functionName() == QLatin1String("??")) { + if (functionName() == QLatin1String("??") || functionName().isEmpty()) { r = MissingEverything; } else { r = MissingLibrary; diff --git a/src/tests/gdbbacktracelinetest.cpp b/src/tests/gdbbacktracelinetest.cpp --- a/src/tests/gdbbacktracelinetest.cpp +++ b/src/tests/gdbbacktracelinetest.cpp @@ -73,34 +73,34 @@ QCOMPARE(line.functionName(), ""); QCOMPARE(line.fileName(), ""); QCOMPARE(line.libraryName(), "/usr/lib/libglib-2.0.so.0"); - QCOMPARE(line.rating(), BacktraceLine::MissingSourceFile); + QCOMPARE(line.rating(), BacktraceLine::MissingFunction); } { // library without -2.0 (trips up suffix detection) BacktraceLineGdb line("#13 0x00007fe6059971b1 in () at /usr/lib/libpackagekit-qt.so.12\n"); QCOMPARE(line.type(), BacktraceLine::StackFrame); QCOMPARE(line.frameNumber(), 13); QCOMPARE(line.functionName(), ""); QCOMPARE(line.fileName(), ""); QCOMPARE(line.libraryName(), "/usr/lib/libpackagekit-qt.so.12"); - QCOMPARE(line.rating(), BacktraceLine::MissingSourceFile); + QCOMPARE(line.rating(), BacktraceLine::MissingFunction); } { // library without any soversion BacktraceLineGdb line("#13 0x00007fe6059971b1 in () at /usr/lib/libpackagekit-qt.so\n"); QCOMPARE(line.type(), BacktraceLine::StackFrame); QCOMPARE(line.frameNumber(), 13); QCOMPARE(line.functionName(), ""); QCOMPARE(line.fileName(), ""); QCOMPARE(line.libraryName(), "/usr/lib/libpackagekit-qt.so"); - QCOMPARE(line.rating(), BacktraceLine::MissingSourceFile); + QCOMPARE(line.rating(), BacktraceLine::MissingFunction); } { // library without any soversion but name suffix BacktraceLineGdb line("#13 0x00007fe6059971b1 in () at /usr/lib/libpackagekit-1.0.so\n"); QCOMPARE(line.type(), BacktraceLine::StackFrame); QCOMPARE(line.frameNumber(), 13); QCOMPARE(line.functionName(), ""); QCOMPARE(line.fileName(), ""); QCOMPARE(line.libraryName(), "/usr/lib/libpackagekit-1.0.so"); - QCOMPARE(line.rating(), BacktraceLine::MissingSourceFile); + QCOMPARE(line.rating(), BacktraceLine::MissingFunction); } }