forked from qt-creator/qt-creator
CDB: fix breakpoint location in catch clauses.
Task-number: QTCREATORBUG-7336 Change-Id: I926e82499325e4fe38e25cc7a6158050f7fc0e82 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
committed by
Erik Verbruggen
parent
cdbbf37743
commit
a8a49c9851
@@ -212,6 +212,7 @@ bool FindCdbBreakpoint::visit(SwitchStatementAST *ast)
|
|||||||
bool FindCdbBreakpoint::visit(TryBlockStatementAST *ast)
|
bool FindCdbBreakpoint::visit(TryBlockStatementAST *ast)
|
||||||
{
|
{
|
||||||
accept(ast->statement);
|
accept(ast->statement);
|
||||||
|
accept(ast->catch_clause_list);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ private slots:
|
|||||||
|
|
||||||
void findBreakpoints();
|
void findBreakpoints();
|
||||||
void findBreakpoints2();
|
void findBreakpoints2();
|
||||||
|
void findBreakpoints3();
|
||||||
};
|
};
|
||||||
|
|
||||||
void tst_Misc::diagnosticClient_error()
|
void tst_Misc::diagnosticClient_error()
|
||||||
@@ -155,7 +156,7 @@ void tst_Misc::findBreakpoints2()
|
|||||||
" }\n"
|
" }\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
);
|
);
|
||||||
Document::Ptr doc = Document::create("findContstructorBreakpoint");
|
Document::Ptr doc = Document::create("findSwitchBreakpoint");
|
||||||
QVERIFY(!doc.isNull());
|
QVERIFY(!doc.isNull());
|
||||||
doc->setUtf8Source(src);
|
doc->setUtf8Source(src);
|
||||||
bool success = doc->parse();
|
bool success = doc->parse();
|
||||||
@@ -173,5 +174,32 @@ void tst_Misc::findBreakpoints2()
|
|||||||
QCOMPARE(findBreakpoint(7), 7U);
|
QCOMPARE(findBreakpoint(7), 7U);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_Misc::findBreakpoints3()
|
||||||
|
{
|
||||||
|
const QByteArray src("\n" // line 0
|
||||||
|
"int foo() {\n"
|
||||||
|
" try {\n" // line 2
|
||||||
|
" bar();\n" // line 3
|
||||||
|
" } catch (Mooze &m) {\n" // line 4
|
||||||
|
" wooze();\n" // line 5
|
||||||
|
" }\n"
|
||||||
|
" return 0;\n" // line 7
|
||||||
|
"}\n"
|
||||||
|
);
|
||||||
|
Document::Ptr doc = Document::create("findCatchBreakpoint");
|
||||||
|
QVERIFY(!doc.isNull());
|
||||||
|
doc->setUtf8Source(src);
|
||||||
|
bool success = doc->parse();
|
||||||
|
QVERIFY(success);
|
||||||
|
QCOMPARE(doc->diagnosticMessages().size(), 0);
|
||||||
|
FindCdbBreakpoint findBreakpoint(doc->translationUnit());
|
||||||
|
|
||||||
|
QCOMPARE(findBreakpoint(2), 3U);
|
||||||
|
QCOMPARE(findBreakpoint(3), 3U);
|
||||||
|
QCOMPARE(findBreakpoint(4), 5U);
|
||||||
|
QCOMPARE(findBreakpoint(5), 5U);
|
||||||
|
QCOMPARE(findBreakpoint(7), 7U);
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_MAIN(tst_Misc)
|
QTEST_MAIN(tst_Misc)
|
||||||
#include "tst_misc.moc"
|
#include "tst_misc.moc"
|
||||||
|
|||||||
Reference in New Issue
Block a user