X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=riscv%2Fgdbserver.cc;h=0ab1aef2855961119a603f834b3771fba5b37157;hb=d1d8863086c57f04236418f21ef8a7fbfc184b0b;hp=0b36421114d2f68c3ef4c4961882b014de64a637;hpb=c57bdaa03373688f76703d20d6df5e0dc4a21eb5;p=riscv-isa-sim.git diff --git a/riscv/gdbserver.cc b/riscv/gdbserver.cc index 0b36421..0ab1aef 100644 --- a/riscv/gdbserver.cc +++ b/riscv/gdbserver.cc @@ -700,30 +700,30 @@ void gdbserver_t::handle_interrupt() void gdbserver_t::handle() { - processor_t *p = sim->get_core(0); - if (running && p->halted) { - // The core was running, but now it's halted. Better tell gdb. - switch (p->halt_reason) { - case HR_NONE: - fprintf(stderr, "Internal error. Processor halted without reason.\n"); - abort(); - case HR_STEPPED: - case HR_INTERRUPT: - case HR_CMDLINE: - case HR_ATTACHED: - // There's no gdb code for this. - send_packet("T05"); - break; - case HR_SWBP: - send_packet("T05swbreak:;"); - break; + if (client_fd > 0) { + processor_t *p = sim->get_core(0); + if (running && p->halted) { + // The core was running, but now it's halted. Better tell gdb. + switch (p->halt_reason) { + case HR_NONE: + fprintf(stderr, "Internal error. Processor halted without reason.\n"); + abort(); + case HR_STEPPED: + case HR_INTERRUPT: + case HR_CMDLINE: + case HR_ATTACHED: + // There's no gdb code for this. + send_packet("T05"); + break; + case HR_SWBP: + send_packet("T05swbreak:;"); + break; + } + send_packet("T00"); + // TODO: Actually include register values here + running = false; } - send_packet("T00"); - // TODO: Actually include register values here - running = false; - } - if (client_fd > 0) { this->read(); this->write();