已合并
[feature] mi提供断点是否simt位置信息 #136
wiyr0创建于 5月13日
[feature] mi提供断点是否simt位置信息 #136
已合并
共 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 | /// \return | 406 | /// \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 | 585 | ||
| 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 | + | ||
| 1471 | bool SBProcess::HandleDeviceSBProcessStateChanged() { | 1480 | bool 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 | 139 | ||
| 127 | 140 | ||
| 128 | //++ | 141 | //++ |
| @@ -1568,6 +1581,7 @@ bool CMICmnLLDBDebuggerHandleEvents::MiStoppedAtBreakPoint( | |||
| 1568 | miOutOfBandRecord.Add(miValueResult6); | 1581 | miOutOfBandRecord.Add(miValueResult6); |
| 1569 | 1582 | ||
| 1570 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); | 1583 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); |
| 1584 | + miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess)); | ||
| 1571 | 1585 | ||
| 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 | 1634 | ||
| 1621 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); | 1635 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); |
| 1636 | + miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess)); | ||
| 1622 | 1637 | ||
| 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 | 1743 | ||
| 1729 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); | 1744 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); |
| 1745 | + miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess)); | ||
| 1730 | 1746 | ||
| 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 | 1784 | ||
| 1769 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); | 1785 | miOutOfBandRecord.Add(GetMiValueResultIsDevice(sbProcess)); |
| 1786 | + miOutOfBandRecord.Add(GetMiValueResultIsSimt(sbProcess)); | ||
| 1770 | 1787 | ||
| 1771 | 1788 | ||
| 1772 | bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord); | 1789 | bOk = MiOutOfBandRecordToStdout(miOutOfBandRecord); |