Index: sid/component/gdb/gdb.cxx =================================================================== RCS file: /cvs/src/src/sid/component/gdb/gdb.cxx,v retrieving revision 1.11 diff -c -p -r1.11 gdb.cxx *** sid/component/gdb/gdb.cxx 22 Mar 2004 21:27:23 -0000 1.11 --- sid/component/gdb/gdb.cxx 1 Jul 2004 16:46:54 -0000 *************** gdb::process_get_exp_regs () *** 532,538 **** // Helper functions template ! void read_bus_word(gdbserv* gdbserv, sid::bus* bus, host_int_4 address, --- 532,538 ---- // Helper functions template ! bus::status read_bus_word(gdbserv* gdbserv, sid::bus* bus, host_int_4 address, *************** read_bus_word(gdbserv* gdbserv, *** 545,557 **** for (unsigned i=0; i < sizeof(typename Type::value_type); i++) gdbserv_output_byte (gdbserv, value.read_byte(i)); } ! else gdbserv_output_string (gdbserv, "E05"); } template ! void write_bus_word(gdbserv* gdbserv, int binary, sid::bus* bus, --- 545,559 ---- for (unsigned i=0; i < sizeof(typename Type::value_type); i++) gdbserv_output_byte (gdbserv, value.read_byte(i)); } ! // misaligned will be handled by the caller ! else if (s != bus::misaligned) gdbserv_output_string (gdbserv, "E05"); + return s; } template ! bus::status write_bus_word(gdbserv* gdbserv, int binary, sid::bus* bus, *************** write_bus_word(gdbserv* gdbserv, *** 572,581 **** } bus::status s = bus->write (address, value); ! if (s == bus::ok) ! ; // No response means "OK" else gdbserv_output_string (gdbserv, "E05"); } --- 574,584 ---- } bus::status s = bus->write (address, value); ! if (s == bus::ok || s == bus::misaligned) ! ; // No response means "OK" -- misaligned will be handled by the caller else gdbserv_output_string (gdbserv, "E05"); + return s; } *************** gdb::process_get_mem (struct gdbserv_reg *** 620,642 **** } host_int_4 addr = addr8; // truncate if (len==1 && e==endian_big) ! read_bus_word (gdbserv, memory, addr, big_int_1()); else if (len==1 && e==endian_little) ! read_bus_word (gdbserv, memory, addr, little_int_1()); else if (len==2 && e==endian_big) ! read_bus_word (gdbserv, memory, addr, big_int_2()); else if (len==2 && e==endian_little) ! read_bus_word (gdbserv, memory, addr, little_int_2()); else if (len==4 && e==endian_big) ! read_bus_word (gdbserv, memory, addr, big_int_4()); else if (len==4 && e==endian_little) ! read_bus_word (gdbserv, memory, addr, little_int_4()); else if (len==8 && e==endian_big) ! read_bus_word (gdbserv, memory, addr, big_int_8()); else if (len==8 && e==endian_little) ! read_bus_word (gdbserv, memory, addr, little_int_8()); ! else if (e==endian_little) { for (unsigned long i=0; i