I would see if you can install a later GDB as besides the break point issue there is also a memory watch that is not working as the "x/256xb 0x0" is the GDB annotations way of reading memory (GDB/MI is different), but the address is 0x0 and as such GDB complains that it "Cannot access memory at address 0x0". I have seen this when I had not coded things up correctly and was trying to watch a variable, but the variable was converted to a long and as you can appreciate it failed so the address became 0, which once I finished the changes for supporting memory read using variables it worked.
The break point number is returned by GDB when you set a break point and this is the number reported in the log. I have also seen where GDB does not re-se them.
Unfortunately the existing GDB logging is lacking info. It could be related to threading as I have not looked at multiple threading, apart from getting the threading dialog working (or what looks like working).
The following is an example of the GDB/MI logging, which has allot more usable debugging info to show you what GDB/MI plugin and GDB are doing:
[debug ] <std::shared_ptr<cbBreakpoint> Debugger_GDB_MI::AddBreakpoint(L 1349)> D:\Andrew_Development\Z_Testing_Apps\Printf_I64\main.cpp:130
[debug ] < dbg_mi::GDBBreakpointAddAction::OnStart(L 122)> GDBBreakpointAddAction::m_initial_cmd = 110000000000
[cmd ] < dbg_mi::CommandExecutor::ExecuteSimple(L 77)> cmd==>110000000000-break-insert -f D:\Andrew_Development\Z_Testing_Apps\Printf_I64\main.cpp:130==<
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>110000000000^done,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00007ff7af9c197b",func="main()",file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",thread-groups=["i1"],times="0",original-location="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130"}<==
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>(gdb) <=
[info ] <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 257)> Parsing: id: 110000000000 parser ==>type: result , ClassDone , { m_value results: {bkpt={number=4,type=breakpoint,disp=keep,enabled=y,addr=0x00007ff7af9c197b,func=main(),file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,thread-groups=["i1"],times=0,original-location=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130}} }<== for ==>^done,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00007ff7af9c197b",func="main()",file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",thread-groups=["i1"],times="0",original-location="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130"}<==
[debug ] <dbg_mi::GDBBreakpointAddAction::OnCommandOutput(L 54)> Currently disabled id: 110000000000 index is 4 for =>type: result , ClassDone , { m_value results: {bkpt={number=4,type=breakpoint,disp=keep,enabled=y,addr=0x00007ff7af9c197b,func=main(),file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,thread-groups=["i1"],times=0,original-location=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130}} }<=
[debug ] <dbg_mi::GDBBreakpointAddAction::OnCommandOutput(L 92)> finishing for id: 110000000000 for =>type: result , ClassDone , { m_value results: {bkpt={number=4,type=breakpoint,disp=keep,enabled=y,addr=0x00007ff7af9c197b,func=main(),file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,thread-groups=["i1"],times=0,original-location=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130}} }<=
[info ] <dbg_mi::GDBBreakpointAddAction::~GDBBreakpointAddAction(L 29)> GDBBreakpointAddAction::destructor
[debug ] < Debugger_GDB_MI::Continue(L 1202)> Debugger_GDB_MI::Continue
[cmd ] < Debugger_GDB_MI::CommitRunCommand(L 1142)> =>-exec-continue<=
[debug ] <dbg_mi::GDBRunAction<StopNotification>::OnStart(L 112)> GDBRunAction::OnStart -> -exec-continue
[cmd ] < dbg_mi::CommandExecutor::ExecuteSimple(L 77)> cmd==>120000000000-exec-continue==<
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>120000000000^running<==
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>*running,thread-id="all"<==
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>(gdb) <=
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>=breakpoint-modified,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00007ff7af9c197b",func="main()",file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",thread-groups=["i1"],times="1",original-location="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130"}<==
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>~"\n"<=
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>~"Thread 1 hit Breakpoint 4, main () at D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130\n"<=
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>~"\032\032D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130:3113:beg:0x7ff7af9c197b\n"<=
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>*stopped,reason="breakpoint-hit",disp="keep",bkptno="4",frame={addr="0x00007ff7af9c197b",func="main",args=[],file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",arch="i386:x86-64"},thread-id="1",stopped-threads="all"<==
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>(gdb) <=
---------------
{Receive } <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 265)> Parsing : id: 120000000000 parser ==>type: result , ClassRunning<== for ==>^running<==
[debug ] <dbg_mi::GDBRunAction<StopNotification>::OnCommandOutput(L 101)> GDBRunAction success, the debugger is !stopped!
[debug ] <dbg_mi::GDBRunAction<StopNotification>::OnCommandOutput(L 102)> GDBRunAction::Output - type: result , ClassRunning
[debug ] < dbg_mi::GDBExecutor::Stopped(L 325)> Executor started
---------------
{Receive } <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 265)> Parsing : id: -1-000000001 parser ==>type: exec-async-ouput , ClassRunning , { m_value results: {thread-id=all} }<== for ==>*running,thread-id="all"<==
---------------
{Receive } < Notifications::operator()(L 479)> notification event received: ==>type: exec-async-ouput , ClassRunning , { m_value results: {thread-id=all} }<==
[info ] <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 257)> Parsing: id: -1-000000001 parser ==>type: notify-async-ouput , class unknown , { m_value results: {bkpt={number=4,type=breakpoint,disp=keep,enabled=y,addr=0x00007ff7af9c197b,func=main(),file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,thread-groups=["i1"],times=1,original-location=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130}} }<== for ==>=breakpoint-modified,bkpt={number="4",type="breakpoint",disp="keep",enabled="y",addr="0x00007ff7af9c197b",func="main()",file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",thread-groups=["i1"],times="1",original-location="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130"}<==
{Receive } < Notifications::ParseNotifyAsyncOutput(L 600)> Notification for breakpoint-modified: type: notify-async-ouput , class unknown , { m_value results: {bkpt={number=4,type=breakpoint,disp=keep,enabled=y,addr=0x00007ff7af9c197b,func=main(),file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,thread-groups=["i1"],times=1,original-location=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp:130}} }
[info ] <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 257)> Parsing: id: -1-000000001 parser ==>type: exec-async-ouput , ClassStopped , { m_value results: {reason=breakpoint-hit,disp=keep,bkptno=4,frame={addr=0x00007ff7af9c197b,func=main,args=[],file=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,fullname=D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp,line=130,arch=i386:x86-64},thread-id=1,stopped-threads=all} }<== for ==>*stopped,reason="breakpoint-hit",disp="keep",bkptno="4",frame={addr="0x00007ff7af9c197b",func="main",args=[],file="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",fullname="D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp",line="130",arch="i386:x86-64"},thread-id="1",stopped-threads="all"<==
< Notifications::ParseStateInfo(L 533)> Breakpoint hit on line#: 130 in file: D:\\Andrew_Development\\Z_Testing_Apps\\Printf_I64\\main.cpp
[debug ] < dbg_mi::GDBExecutor::Stopped(L 321)> Executor stopped
[debug ] <dbg_mi::GDBRunAction<StopNotification>::~GDBRunAction(L 94)> GDBRunAction::destructor
[debug ] < dbg_mi::GDBWatchesUpdateAction::OnStart(L 1660)> -var-update 1 *
[cmd ] < dbg_mi::CommandExecutor::ExecuteSimple(L 77)> cmd==>130000000000-var-update 1 *==<
[info ] < dbg_mi::CommandExecutor::ProcessOutput(L 93)> Receive ==>130000000000^done,changelist=[{name="var1",value="7",in_scope="true",type_changed="false",has_more="0"}]<==
{Receive } < Debugger_GDB_MI::OnGDBOutput(L 274)> Ignore =>(gdb) <=
[info ] <dbg_mi::ResultParser* dbg_mi::CommandExecutor::GetResult(L 257)> Parsing: id: 130000000000 parser ==>type: result , ClassDone , { m_value results: {changelist=[{name=var1,value=7,in_scope=true,type_changed=false,has_more=0}]} }<== for ==>^done,changelist=[{name="var1",value="7",in_scope="true",type_changed="false",has_more="0"}]<==
[debug ] <dbg_mi::GDBWatchesUpdateAction::ParseUpdate(L 1679)> List count: 1 , result: ==>type: result , ClassDone , { m_value results: {changelist=[{name=var1,value=7,in_scope=true,type_changed=false,has_more=0}]} }<==
[debug ] <dbg_mi::GDBWatchesUpdateAction::ParseUpdate(L 1773)> Update ==>var1<<== = ==>7<<==
[debug ] <dbg_mi::GDBWatchesUpdateAction::OnCommandOutput(L 1832)> WatchUpdateAction::Output - finishing at==>130000000000<<==
[debug ] < dbg_mi::UpdateWatches(L 1125)> updating watches