From 6bf026e2e45561f268bcf150e99f535a60413113 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Mon, 2 Dec 2002 18:36:03 +0000 Subject: [PATCH] New file. --- .../cdt/debug/mi/core/cdi/ErrorInfo.java | 24 +++++++ .../cdt/debug/mi/core/event/MIErrorEvent.java | 66 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ErrorInfo.java create mode 100644 debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIErrorEvent.java diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ErrorInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ErrorInfo.java new file mode 100644 index 00000000000..3a1665a8e4a --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/cdi/ErrorInfo.java @@ -0,0 +1,24 @@ +package org.eclipse.cdt.debug.mi.core.cdi; + +import org.eclipse.cdt.debug.core.cdi.ICDIErrorInfo; +import org.eclipse.cdt.debug.mi.core.event.MIErrorEvent; + +/** + */ +public class ErrorInfo extends SessionObject implements ICDIErrorInfo { + + MIErrorEvent event; + + public ErrorInfo(CSession session, MIErrorEvent e) { + super(session); + event = e; + } + + /** + * @see org.eclipse.cdt.debug.core.cdi.ICDIErrorInfo#getMessage() + */ + public String getMessage() { + return event.getMessage(); + } + +} diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIErrorEvent.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIErrorEvent.java new file mode 100644 index 00000000000..a0d2feaa351 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/event/MIErrorEvent.java @@ -0,0 +1,66 @@ +/* + * (c) Copyright QNX Software Systems Ltd. 2002. + * All Rights Reserved. + * + */ +package org.eclipse.cdt.debug.mi.core.event; + +import org.eclipse.cdt.debug.mi.core.output.MIConst; +import org.eclipse.cdt.debug.mi.core.output.MIExecAsyncOutput; +import org.eclipse.cdt.debug.mi.core.output.MIResult; +import org.eclipse.cdt.debug.mi.core.output.MIResultRecord; +import org.eclipse.cdt.debug.mi.core.output.MIValue; + + + +/** + * (gdb) + * &"warning: Cannot insert breakpoint 2:\n" + * &"Cannot access memory at address 0x8020a3\n" + * 30^error,msg=3D"Cannot access memory at address 0x8020a3"=20 + */ +public class MIErrorEvent extends MIStoppedEvent { + + String msg = ""; + + public MIErrorEvent(MIExecAsyncOutput async) { + super(async); + parse(); + } + + public MIErrorEvent(MIResultRecord record) { + super(record); + parse(); + } + + public String getMessage() { + return msg; + } + + void parse () { + MIResult[] results = null; + MIExecAsyncOutput exec = getMIExecAsyncOutput(); + MIResultRecord rr = getMIResultRecord(); + + if (exec != null) { + results = exec.getMIResults(); + } else if (rr != null) { + results = rr.getMIResults(); + } + + if (results != null) { + for (int i = 0; i < results.length; i++) { + String var = results[i].getVariable(); + MIValue value = results[i].getMIValue(); + String str = ""; + if (value instanceof MIConst) { + str = ((MIConst)value).getString(); + } + + if (var.equals("msg")) { + msg = str; + } + } + } + } +}