MCPcopy Create free account
hub / github.com/CE-Programming/CEmu / breakModified

Method breakModified

gui/qt/debugger.cpp:931–988  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

929}
930
931void MainWindow::breakModified(QTableWidgetItem *item) {
932 if (item == Q_NULLPTR) {
933 return;
934 }
935
936 int row = item->row();
937 int col = item->column();
938 QString addrStr;
939 uint32_t addr;
940
941 if (col == BREAK_NAME_COL) {
942 updateLabels();
943 } else if (col == BREAK_ADDR_COL){
944 std::string s = item->text().toUpper().toStdString();
945 QString equate;
946 int mask;
947
948 equate = getAddressOfEquate(s);
949 if (!equate.isEmpty()) {
950 s = equate.toStdString();
951 m_breakpoints->blockSignals(true);
952 if (m_breakpoints->item(row, BREAK_NAME_COL)->text() == (QStringLiteral("Label") + QString::number(row))) {
953 m_breakpoints->item(row, BREAK_NAME_COL)->setText(item->text());
954 }
955 m_breakpoints->blockSignals(false);
956 }
957
958 if (isNotValidHex(s) || s.length() > 6) {
959 item->setText(m_prevBreakAddr);
960 return;
961 }
962
963 addr = static_cast<uint32_t>(hex2int(QString::fromStdString(s)));
964 addrStr = int2hex(addr, 6);
965
966 m_breakpoints->blockSignals(true);
967
968 // Return if address is already set
969 for (int i = 0; i < m_breakpoints->rowCount(); i++) {
970 if (m_breakpoints->item(i, BREAK_ADDR_COL)->text() == addrStr && i != row) {
971 item->setText(m_prevBreakAddr);
972 m_breakpoints->blockSignals(false);
973 return;
974 }
975 }
976
977 mask = breakGetMask(row);
978
979 if (m_prevBreakAddr != DEBUG_UNSET_ADDR) {
980 debug_watch(hex2int(m_prevBreakAddr), DBG_MASK_EXEC, false);
981 }
982 item->setText(addrStr);
983 debug_watch(addr, mask, true);
984 m_breakpoints->blockSignals(false);
985 }
986 disasmUpdate();
987 memUpdate();
988}

Callers

nothing calls this directly

Calls 7

getAddressOfEquateFunction · 0.85
isNotValidHexFunction · 0.85
hex2intFunction · 0.85
int2hexFunction · 0.85
debug_watchFunction · 0.85
rowMethod · 0.80
rowCountMethod · 0.80

Tested by

no test coverage detected