/
George_Smith
/
GDBManager
Обзор
Документация
Войти
/
George_Smith
/
GDBManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
devel
main.cpp
104 строки
3 KB
George Smith
fix: handle nested arrays with <repeats ... times> pattern.
01 мар 2026, 13:50
01 мар 2026, 13:50
b0906bf
Код
Авторство
О чём код?
#include "gdbengine.h" #include <iostream> #include <termios.h> #include <unistd.h> using namespace std; void handleStopped(const GdbManager::GdbResponse& res){ std::cout << "--- STOPPED IN LINE ---" << std::endl; std::cout << "type: " << res.type << " : " << res.results << std::endl; } void handleChildren(const GdbManager::GdbResponse& res){ std::cout << "--- HANDLE CHILDREN ---" << std::endl; std::cout << res.results << std::endl; } void updateLocalsView(const GdbManager::GdbResponse& res){ std::cout << "--- LOCAL VARIABLES ---" << std::endl; std::cout << res.results << std::endl; } void handleGdbError(const GdbManager::GdbResponse& res){ cout << "Error code:" << res.results << std::endl; } int main() { char c; GdbManager dbg; if (dbg.start()) { std::cerr << "Ошибка запуска GDB manager" << std::endl; } // Configure interface response dbg.setOnEvent([](const GdbManager::GdbResponse& res) { std::cout << "--- ALL EVENT ---" << endl; /* if (res.className == "stopped") { std::cout << "All event (stopped) res: " << res.results << std::endl; } if (res.results.count("locals")) { std::cout << "All event (locals) res: " << res.results << std::endl; }*/ }); dbg.setOnLocals(&updateLocalsView); dbg.setOnStopped(&handleStopped); dbg.setOnError(&handleGdbError); dbg.setOnChildren(&handleChildren); //dbg.loadProcess("/home/vm/GDBManager/plc_main"); //dbg.loadProcess("/home/gdsmith/Projects/GDBManager/build/Desktop-Debug/untitled6"); dbg.connectToRemote("192.168.5.125", 1080); //dbg.setBreakpoint("ZDsection.ResourceProject.st", 7); dbg.setBreakpoint("VSsection.ResourceProject.st", 8); dbg.continueExecution(); dbg.listChildren("PLC_PRG"); dbg.listChildren("PLC_PRG.localVar2"); dbg.listChildren("PLC_PRG.localVar2.localVar2"); std::cout << "n - Step Over, r - Run, i - Interrupt, s - Step Into, o - Step Out, c - Continue Execution q - Quit" << std::endl; while(true) { std::cin >> c; // Wait for key press if (c == 'r') { dbg.run(); } else if (c == 'n') { dbg.stepOver(); } else if (c == 'c') { dbg.continueExecution(); } else if (c == 'b') { // dbg.setBreakpoint("PLC_PRG.ResourceProject.st", 32); } else if (c == 'i') { // Interrupt (Pause) dbg.breakExecution(); } else if (c == 's') { dbg.stepInto(); } else if (c == 'o') { // dbg.stepOut(); } else if (c == 'u') { // dbg.updateLocals(); } else if (c == 'q') { //dbg.abort(); dbg.stop(); break; } } return 0; }