From 70b40f859c5e405bacfd44ccc6e173317277bdf0 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Fri, 26 Nov 2004 21:11:53 +0000 Subject: [PATCH] 2004-11-26 Alain Magloire Final fix for PR 79452 * cdi/org/eclipose/cdt/debug/mi/core/cdi/BreapointManager.java --- debug/org.eclipse.cdt.debug.mi.core/ChangeLog | 4 ++++ .../debug/mi/core/cdi/BreakpointManager.java | 20 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog index 7125f639aef..54b9e1116e3 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.mi.core/ChangeLog @@ -1,3 +1,7 @@ +2004-11-26 Alain Magloire + Final fix for PR 79452 + * cdi/org/eclipose/cdt/debug/mi/core/cdi/BreapointManager.java + 2004-11-26 Alain Magloire Fix for PR 79582 * src/org/eclipse/cdt/debug/mi/core/CygwinGDBCDIDebugger.java diff --git a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java index 25bf34d6b24..3490bd08894 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java +++ b/debug/org.eclipse.cdt.debug.mi.core/cdi/org/eclipse/cdt/debug/mi/core/cdi/BreakpointManager.java @@ -576,7 +576,25 @@ public class BreakpointManager extends Manager { if (file != null && file.length() > 0) { line.append(file).append(':'); if (function != null && function.length() > 0) { - line.append(function); + // GDB does not seem to accept function arguments when + // we use file name: + // (gdb) break file.c:Test(int) + // Will fail, altought it can accept this + // (gdb) break file.c:main + // so fall back to the line number or + // just the name of the function if lineno is invalid. + int paren = function.indexOf('('); + if (paren != -1) { + int no = location.getLineNumber(); + if (no <= 0) { + String func = function.substring(0, paren); + line.append(func); + } else { + line.append(no); + } + } else { + line.append(function); + } } else { line.append(location.getLineNumber()); }