
Сообщение от
ZEK
Code::Blocks умеет по tcp работать с gdb, я давно эту тему мурыжил нюансов не помню, надо перечитать все, но вроде sdcc все что надо для gdb предоставляет
Как оказалось не предоставляет. У него какой-то свой формат отладочных символов, совместимый только с собственным отладчиком sdcdb. Причем sdcdb кроме mcs51 больше ничего отлаживать не умеет.
gdb-z80 поддерживает только COFF. Надо конвертилку писать.
---------- Post added at 19:22 ---------- Previous post was at 17:47 ----------
Все, дописал свой z80-gdbserver. Ассемблер позволяет отлаживать в полном объеме (бряки на выполнение, чтение/запись памяти, пошаговое выполнение, чтение регистров). Использует Z80CPU из ZXMAK2.EXE.
http://github.com/atsidaev/z80gdbserver
Всё, что требуется от эмулятора - это реализовать интерфейс
Код:
public interface IEmulator
{
Z80CPU GetCPU();
void Pause();
void Run();
void SetBreakpoint(Breakpoint.BreakpointType type, ushort addr);
void RemoveBreakpoint(Breakpoint.BreakpointType type, ushort addr);
event Breakpoint.BreakPointEventHandler OnBreakpoint;
}
так что реализовать его в виде плагина проще простого.
Осталось запилить поддержку отладочной информации sdcc, и можно будет удобно отлаживать любой сишный (а в перспективе и любой, для которого есть компилятор) код.