diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2020-05-31 00:41:21 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2020-06-04 23:13:13 +0200 |
| commit | 3390159e1f610a57465add05ca56c31cef78cdc2 (patch) | |
| tree | 4fa122e0c622f5efd68004f7c6014388ca816bf2 /gdbstub.c | |
| parent | a03d79fcc6f5c7ce7389d586977ca8d2cfe94f1a (diff) | |
| download | gdbstub-3390159e1f610a57465add05ca56c31cef78cdc2.tar.gz | |
Added support for Z0/z0 (aka breakpoint) commands
Diffstat (limited to 'gdbstub.c')
| -rw-r--r-- | gdbstub.c | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -944,6 +944,62 @@ int dbg_main(struct dbg_state *state) break; /* + * Breakpoint + * Command Format: Z0,[addr],[type] + */ + case 'Z': { + int zero; + size_t brk_sz; + + ptr_next += 1; + token_expect_integer_arg(zero); + token_expect_seperator(','); + token_expect_integer_arg(addr); + token_expect_seperator(','); + token_expect_integer_arg(brk_sz); + + if (zero) { + goto error; + } + + /* Set breakpoint */ + if (dbg_sys_breakpoint(addr)) { + goto error; + } + + dbg_send_ok_packet(pkt_buf, sizeof(pkt_buf)); + } + break; + + /* + * Remove Breakpoint + * Command Format: Z0,[addr],[type] + */ + case 'z': { + int zero; + size_t brk_sz; + + ptr_next += 1; + token_expect_integer_arg(zero); + token_expect_seperator(','); + token_expect_integer_arg(addr); + token_expect_seperator(','); + token_expect_integer_arg(brk_sz); + + if (zero) { + goto error; + } + + /* Set breakpoint */ + if (dbg_sys_del_breakpoint(addr)) { + goto error; + } + + dbg_send_ok_packet(pkt_buf, sizeof(pkt_buf)); + } + break; + + /* * Unsupported Command */ default: |
