From 4cac6b88d8566ded74e94a73ebb96ec35de0004d Mon Sep 17 00:00:00 2001 From: dolik Date: Sat, 8 Jan 2011 16:57:03 +0000 Subject: [PATCH] ide: Allow conditional breakpoints git-svn-id: svn://ultimatepp.org/upp/trunk@2975 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/Debuggers/Gdb.cpp | 5 +++-- uppsrc/ide/idebar.cpp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) 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();