--- gdb-6.8.50.20080620/gdb/remote.c.old 2008-06-11 13:56:36.000000000 +0100 +++ gdb-6.8.50.20080620/gdb/remote.c 2008-06-27 18:26:41.000000000 +0100 @@ -5250,12 +5250,13 @@ remote_insert_breakpoint (struct bp_targ if (remote_protocol_packets[PACKET_Z0].support != PACKET_DISABLE) { - CORE_ADDR addr; + CORE_ADDR addr = bp_tgt->placed_address; struct remote_state *rs; char *p; + int bpsize; gdbarch_breakpoint_from_pc - (current_gdbarch, &bp_tgt->placed_address, &bp_tgt->placed_size); + (current_gdbarch, &addr, &bpsize); rs = get_remote_state (); p = rs->buf; @@ -5263,9 +5264,9 @@ remote_insert_breakpoint (struct bp_targ *(p++) = 'Z'; *(p++) = '0'; *(p++) = ','; - addr = (ULONGEST) remote_address_masked (bp_tgt->placed_address); + addr = (ULONGEST) remote_address_masked (addr); p += hexnumstr (p, addr); - sprintf (p, ",%d", bp_tgt->placed_size); + sprintf (p, ",%d", bpsize); putpkt (rs->buf); getpkt (&rs->buf, &rs->buf_size, 0); @@ -5275,6 +5276,8 @@ remote_insert_breakpoint (struct bp_targ case PACKET_ERROR: return -1; case PACKET_OK: + bp_tgt->placed_address = addr; + bp_tgt->placed_size = bpsize; return 0; case PACKET_UNKNOWN: break;