Breakpoint 2, getfamilypart::getparts (this=0x804d008, pic12=0x804d028, pic14=0x804d140, pic16=0x804d258, pic18=0x804d370, pic24=0x804d488, pic30=0x804d5a0, pic33=0x804d6b8) at /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141
/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141:3310:beg:0x8049589
>>>>>>cb_gdb:
> info locals
strlen = 9
partname = "PIC16F917\000d Part\000\367\377\277(\367\377\277\064\367\377\277\061\250-\000\230\371\377\267\000\000\000\000\vy-\000\000\000\000\000 \000\000\000\020\001\000\000T\367\377\277 \000\000\000\374\000\000\000\363\272\071\000\370\003<\000߹9\000ͼ9\000\060\000\000\000\000\001\000\000\b\215\023\000\n\273\071\000\300\003<\000\070\t\002\000\360\003<\000\364\357;\000\300\003<\000\000\000\000\000h\367\377\277\234\217-\000\363\272\071\000\370\003<\000߹9\000\364\277!\000\374\000\000\000\000\000\000\000\230\367\377\277\a\274\036\000\374\000\000\000P\t\002\000\360\003<\000\364\357;\000\300\003<\000\000\000\000\000\250\367\377\277\364\277!\000\000\000\000\000\000\000\000\000\270\367\377\277=\275\036\000\374\000\000\000\000\000\000\000\330\367\377\277\a\274\036\000)\275\036\000\270\326\004\b\330\367\377\277\f\214\004\b\374\000\000\000\060\062\022\000\001\000\000"
k = 2
fsize = 156449
internalId = 4992
tempoffset = 344
offset = 1775
>>>>>>cb_gdb:
> info args
this = 0x804d008
pic12 = 0x804d028
pic14 = 0x804d140
pic16 = 0x804d258
pic18 = 0x804d370
pic24 = 0x804d488
pic30 = 0x804d5a0
pic33 = 0x804d6b8
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 3 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 4 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 5 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 6 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 7 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 8 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 9 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 10 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
>>>>>>cb_gdb:
> break "/home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp:141"
Punto de interrupción 11 at 0x8049589: file /home/fabian/Escritorio/temp/pruebas/getfamilypart.cpp, line 141.
between each ">break" i was enabling and disabling the same breakpoint in the gui
I think that the reason of this is at the file "gdb_commands.h":
class GdbCmd_AddBreakpoint : public DebuggerCmd
{
DebuggerBreakpoint* m_BP;
public:
/** @param bp The breakpoint to set. */
GdbCmd_AddBreakpoint(DebuggerDriver* driver, DebuggerBreakpoint* bp)
: DebuggerCmd(driver),
m_BP(bp)
{
// gdb doesn't allow setting the bp number.
// instead, we must read it back in ParseOutput()...
m_BP->index = -1;
here the index of the breakpoint is set to -1, and it appears that it is never changed, so when the function "RemoveBreakpoint"
void GDB_driver::RemoveBreakpoint(DebuggerBreakpoint* bp)
{
if (bp && bp->index != -1)
QueueCommand(new GdbCmd_RemoveBreakpoint(this, bp));
}
is called the breakpoint doesnt get removed. i dont know how to solve it(if it is the cause).
EDIT: OK, now i understand..., thanks