Add thread-id field in *stopped notification (MI)

Summary:
Add thread-id field in *stopped notification (MI) + tests

All tests pass on OS X

Reviewers: zturner, clayborg, abidh

Reviewed By: clayborg

Subscribers: lldb-commits, zturner, clayborg, abidh

Differential Revision: http://reviews.llvm.org/D7501

llvm-svn: 228681
This commit is contained in:
Ilia K 2015-02-10 12:02:03 +00:00
parent e35908b18f
commit c4f7fdf571
2 changed files with 12 additions and 5 deletions

View File

@ -63,7 +63,10 @@ class MiNotificationTestCase(lldbmi_testcase.MiTestCaseBase):
self.expect("\^done")
# Test that *stopped is printed
self.expect("\*stopped.*")
# Note that message is different in Darwin and Linux:
# Darwin: "*stopped,reason=\"signal-received\",signal=\"17\",thread-id=\"1\",stopped-threads=\"all\""
# Linux: "*stopped,reason=\"end-stepping-range\",frame={addr=\"0x[0-9a-f]+\",func=\"??\",args=\[\],file=\"??\",fullname=\"??\",line=\"-1\"},thread-id=\"1\",stopped-threads=\"all\"
self.expect("\*stopped,reason=\"(signal-received|end-stepping-range)\",.+,thread-id=\"1\",stopped-threads=\"all\"")
# Run to main to make sure we have not exited the application
self.runCmd("-break-insert -f main")
@ -108,7 +111,7 @@ class MiNotificationTestCase(lldbmi_testcase.MiTestCaseBase):
self.expect("\^done")
# Test that *stopped is printed
self.expect("\*stopped,reason=\"signal-received\",signal=\"17\",stopped-threads=\"all\"")
self.expect("\*stopped,reason=\"signal-received\",signal=\"17\",thread-id=\"1\",stopped-threads=\"all\"")
# Exit
self.runCmd("-gdb-exit")

View File

@ -911,7 +911,7 @@ CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopSignal(bool &vwrbShouldBrk
}
default:
{
// MI print "*stopped,reason=\"signal-received\",signal=\"%lld\",stopped-threads=\"all\""
// MI print "*stopped,reason=\"signal-received\",signal=\"%lld\",thread-id=\"%d\",stopped-threads=\"all\""
const CMICmnMIValueConst miValueConst("signal-received");
const CMICmnMIValueResult miValueResult("reason", miValueConst);
CMICmnMIOutOfBandRecord miOutOfBandRecord(CMICmnMIOutOfBandRecord::eOutOfBand_Stopped, miValueResult);
@ -919,9 +919,13 @@ CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopSignal(bool &vwrbShouldBrk
const CMICmnMIValueConst miValueConst2(strReason);
const CMICmnMIValueResult miValueResult2("signal", miValueConst2);
bOk = miOutOfBandRecord.Add(miValueResult2);
const CMICmnMIValueConst miValueConst3("all");
const CMICmnMIValueResult miValueResult3("stopped-threads", miValueConst3);
const CMIUtilString strThreadId(CMIUtilString::Format("%d", sbProcess.GetSelectedThread().GetIndexID()));
const CMICmnMIValueConst miValueConst3(strThreadId);
const CMICmnMIValueResult miValueResult3("thread-id", miValueConst3);
bOk = bOk && miOutOfBandRecord.Add(miValueResult3);
const CMICmnMIValueConst miValueConst4("all");
const CMICmnMIValueResult miValueResult4("stopped-threads", miValueConst4);
bOk = bOk && miOutOfBandRecord.Add(miValueResult4);
bOk = bOk && MiOutOfBandRecordToStdout(miOutOfBandRecord);
bOk = bOk && TextToStdout("(gdb)");
}