/[qemu]/qemu/gdbstub.c
ViewVC logotype

Diff of /qemu/gdbstub.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.30 by bellard, Sun Oct 30 16:08:23 2005 UTC revision 1.31 by bellard, Tue Nov 15 22:16:05 2005 UTC
# Line 704  void gdb_exit(CPUState *env, int code) Line 704  void gdb_exit(CPUState *env, int code)
704  }  }
705    
706  #else  #else
707  static int gdb_can_read(void *opaque)  static void gdb_read(void *opaque)
 {  
     return 256;  
 }  
   
 static void gdb_read(void *opaque, const uint8_t *buf, int size)  
708  {  {
709      GDBState *s = opaque;      GDBState *s = opaque;
710      int i;      int i, size;
711        uint8_t buf[4096];
712    
713        size = read(s->fd, buf, sizeof(buf));
714        if (size < 0)
715            return;
716      if (size == 0) {      if (size == 0) {
717          /* end of connection */          /* end of connection */
718          qemu_del_vm_stop_handler(gdb_vm_stopped, s);          qemu_del_vm_stop_handler(gdb_vm_stopped, s);
719          qemu_del_fd_read_handler(s->fd);          qemu_set_fd_handler(s->fd, NULL, NULL, NULL);
720          qemu_free(s);          qemu_free(s);
721          vm_start();          vm_start();
722      } else {      } else {
# Line 727  static void gdb_read(void *opaque, const Line 727  static void gdb_read(void *opaque, const
727    
728  #endif  #endif
729    
730  static void gdb_accept(void *opaque, const uint8_t *buf, int size)  static void gdb_accept(void *opaque)
731  {  {
732      GDBState *s;      GDBState *s;
733      struct sockaddr_in sockaddr;      struct sockaddr_in sockaddr;
# Line 768  static void gdb_accept(void *opaque, con Line 768  static void gdb_accept(void *opaque, con
768      vm_stop(EXCP_INTERRUPT);      vm_stop(EXCP_INTERRUPT);
769    
770      /* start handling I/O */      /* start handling I/O */
771      qemu_add_fd_read_handler(s->fd, gdb_can_read, gdb_read, s);      qemu_set_fd_handler(s->fd, gdb_read, NULL, s);
772      /* when the VM is stopped, the following callback is called */      /* when the VM is stopped, the following callback is called */
773      qemu_add_vm_stop_handler(gdb_vm_stopped, s);      qemu_add_vm_stop_handler(gdb_vm_stopped, s);
774  #endif  #endif
# Line 815  int gdbserver_start(int port) Line 815  int gdbserver_start(int port)
815          return -1;          return -1;
816      /* accept connections */      /* accept connections */
817  #ifdef CONFIG_USER_ONLY  #ifdef CONFIG_USER_ONLY
818      gdb_accept (NULL, NULL, 0);      gdb_accept (NULL);
819  #else  #else
820      qemu_add_fd_read_handler(gdbserver_fd, NULL, gdb_accept, NULL);      qemu_set_fd_handler(gdbserver_fd, gdb_accept, NULL, NULL);
821  #endif  #endif
822      return 0;      return 0;
823  }  }

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26