diff --git a/uppsrc/ide/Debuggers/Gdb.cpp b/uppsrc/ide/Debuggers/Gdb.cpp index 89910c92a..352e75c71 100644 --- a/uppsrc/ide/Debuggers/Gdb.cpp +++ b/uppsrc/ide/Debuggers/Gdb.cpp @@ -74,11 +74,12 @@ bool Gdb::SetBreakpoint(const String& filename, int line, const String& bp) String bi = Bpoint(*host, filename, line); if(bp.IsEmpty()) FastCmd("clear " + bi); - else + else if(bp[0]==0xe) FastCmd("b " + bi); + else + FastCmd("b " + bi + " if " + bp); return true; } - void Gdb::SetDisas(const String& text) { disas.Clear(); diff --git a/uppsrc/ide/idebar.cpp b/uppsrc/ide/idebar.cpp index db6f0dc6a..404657663 100644 --- a/uppsrc/ide/idebar.cpp +++ b/uppsrc/ide/idebar.cpp @@ -481,8 +481,8 @@ void Ide::DebugMenu(Bar& menu) } menu.Add(!editfile.IsEmpty() /*&& !debuglock*/, AK_BREAKPOINT, THISBACK(DebugToggleBreak)) .Help("Set / clear breakpoint on current line"); -// menu.Add(!editfile.IsEmpty(), AK_CONDBREAKPOINT, THISBACK(ConditionalBreak)) -// .Help("Edit conditional breakpoint"); + menu.Add(!editfile.IsEmpty(), AK_CONDBREAKPOINT, THISBACK(ConditionalBreak)) + .Help("Edit conditional breakpoint"); menu.Add(!editfile.IsEmpty() /*&& !debuglock*/, AK_CLEARBREAKPOINTS, THISBACK(DebugClearBreakpoints)) .Help("Clear all breakpoints"); menu.Separator();