This is relevant when running multiple simavr sessions in a single
program.
{
if (avr->special_deinit)
avr->special_deinit(avr);
+ if (avr->gdb) {
+ avr_deinit_gdb(avr);
+ avr->gdb = NULL;
+ }
if (avr->vcd) {
avr_vcd_close(avr->vcd);
avr->vcd = NULL;
return 0;
}
+
+void avr_deinit_gdb(avr_t * avr)
+{
+ if (avr->gdb->listen != -1)
+ close(avr->gdb->listen);
+ if (avr->gdb->s != -1)
+ close(avr->gdb->s);
+ free(avr->gdb);
+}
int avr_gdb_init(avr_t * avr);
+void avr_deinit_gdb(avr_t * avr);
+
// call from the main AVR decoder thread
int avr_gdb_processor(avr_t * avr, int sleep);