已合并
[feature] mi提供断点是否simt位置信息 #136
wiyr0创建于 5月13日
[feature] mi提供断点是否simt位置信息 #136
已合并
wiyr0创建于 5月13日
共 3 个文件变更+29-1
@@ -404,7 +404,7 @@ public:
404 /// Return the list of memory regions within the process.404 /// Return the list of memory regions within the process.
405 ///405 ///
406 /// \return406 /// \return
407- /// A list of all witin the process memory regions.407+ /// A list of all within the process memory regions.
408 lldb::SBMemoryRegionInfoList GetMemoryRegions();408 lldb::SBMemoryRegionInfoList GetMemoryRegions();
409 409 
410 /// Return information about the process.410 /// Return information about the process.
@@ -579,6 +579,8 @@ public:
579 579 
580 bool IsSBStopInDevice();580 bool IsSBStopInDevice();
581 581 
582+ bool IsSBStopInSimt();
583+ 
582 bool HandleDeviceSBProcessStateChanged();584 bool HandleDeviceSBProcessStateChanged();
583#endif585#endif
584 586 
@@ -1468,6 +1468,15 @@ bool SBProcess::IsSBStopInDevice() {
1468 }1468 }
1469}1469}
1470 1470 
1471+bool SBProcess::IsSBStopInSimt() {
1472+ ProcessSP process_sp(GetSP());
1473+ if (process_sp && process_sp->IsStopInSimtKernel()) {
1474+ return true;
1475+ } else {
1476+ return false;
1477+ }
1478+}
1479+ 
1471bool SBProcess::HandleDeviceSBProcessStateChanged() {1480bool SBProcess::HandleDeviceSBProcessStateChanged() {
1472 ProcessSP process_sp(GetSP());1481 ProcessSP process_sp(GetSP());
1473 if (process_sp && Process::HandleDeviceProcessStateChanged(process_sp)) {1482 if (process_sp && Process::HandleDeviceProcessStateChanged(process_sp)) {
@@ -123,6 +123,19 @@ static inline CMICmnMIValueResult GetMiValueResultIsDevice(lldb::SBProcess sbPro
123 return miValueResult;123 return miValueResult;
124}124}
125 125 
126+static inline CMICmnMIValueResult
127+GetMiValueResultIsSimt(lldb::SBProcess sbProcess) {
128+ std::string stopInSimt;
129+ if (sbProcess && sbProcess.IsSBStopInSimt()) {
130+ stopInSimt = "true";
131+ } else {
132+ stopInSimt = "false";
133+ }
134+ const CMICmnMIValueConst miValueConst(stopInSimt);
135+ const CMICmnMIValueResult miValueResult("is-simt", miValueConst);
136+ return miValueResult;
137+}
138+ 
126#endif139#endif
127 140 
128//++141//++
@@ -1568,6 +1581,7 @@ bool CMICmnLLDBDebuggerHandleEvents::MiStoppedAtBreakPoint(
1568 miOutOfBandRecord.Add(miValueResult6);1581 miOutOfBandRecord.Add(miValueResult6);
1569#ifdef MS_DEBUGGER1582#ifdef MS_DEBUGGER
1570 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));1583 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));
1584+ miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess));
1571#endif1585#endif
1572 bOk = bOk && MiOutOfBandRecordToStdout(miOutOfBandRecord);1586 bOk = bOk && MiOutOfBandRecordToStdout(miOutOfBandRecord);
1573 bOk = bOk && CMICmnStreamStdout::WritePrompt();1587 bOk = bOk && CMICmnStreamStdout::WritePrompt();
@@ -1619,6 +1633,7 @@ bool CMICmnLLDBDebuggerHandleEvents::MiStoppedAtBreakPoint(
1619 miOutOfBandRecord.Add(miValueResult9);1633 miOutOfBandRecord.Add(miValueResult9);
1620#ifdef MS_DEBUGGER1634#ifdef MS_DEBUGGER
1621 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));1635 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));
1636+ miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess));
1622#endif1637#endif
1623 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);1638 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);
1624 bOk = bOk && CMICmnStreamStdout::WritePrompt();1639 bOk = bOk && CMICmnStreamStdout::WritePrompt();
@@ -1727,6 +1742,7 @@ bool CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopReasonTrace() {
1727 miOutOfBandRecord.Add(miValueResult2);1742 miOutOfBandRecord.Add(miValueResult2);
1728#ifdef MS_DEBUGGER1743#ifdef MS_DEBUGGER
1729 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));1744 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));
1745+ miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess));
1730#endif1746#endif
1731 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);1747 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);
1732 bOk = bOk && CMICmnStreamStdout::WritePrompt();1748 bOk = bOk && CMICmnStreamStdout::WritePrompt();
@@ -1767,6 +1783,7 @@ bool CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStopReasonTrace() {
1767 1783 
1768#ifdef MS_DEBUGGER1784#ifdef MS_DEBUGGER
1769 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));1785 miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess));
1786+ miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess));
1770#endif1787#endif
1771 1788 
1772 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);1789 bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord);