Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2011-04-28 04:09:49 +0000
committereutarass2011-04-28 04:09:49 +0000
commit20530169a7ed50824cd73d15155f77ff36823482 (patch)
treebacf269f668b5d44de5f2dc83133a44556fb613d
parentbfd331e9dd418cf4a6e4dc634e00c7fef07e6f7e (diff)
downloadorg.eclipse.tcf-20530169a7ed50824cd73d15155f77ff36823482.tar.gz
org.eclipse.tcf-20530169a7ed50824cd73d15155f77ff36823482.tar.xz
org.eclipse.tcf-20530169a7ed50824cd73d15155f77ff36823482.zip
Bug 331655 - [disassembly] Improve mixed mode (display more then one source line per instruction)
-rw-r--r--plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/disassembly/TCFDisassemblyBackend.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/disassembly/TCFDisassemblyBackend.java b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/disassembly/TCFDisassemblyBackend.java
index c7e3da996..8e61ef861 100644
--- a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/disassembly/TCFDisassemblyBackend.java
+++ b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/disassembly/TCFDisassemblyBackend.java
@@ -713,7 +713,8 @@ public class TCFDisassemblyBackend implements IDisassemblyBackend {
// insert source
String sourceFile = null;
- int sourceLine = -1;
+ int firstLine = -1;
+ int lastLine = -1;
CodeArea area = findCodeArea(address, codeAreas);
if (area != null) {
if (area.file != null) {
@@ -722,11 +723,17 @@ public class TCFDisassemblyBackend implements IDisassemblyBackend {
filePath = new Path(area.directory).append(filePath);
}
sourceFile = filePath.toString();
- sourceLine = area.start_line - 1;
+ firstLine = area.start_line - 1;
+ lastLine = area.end_line - 2;
}
}
- if (sourceFile != null && sourceLine >= 0) {
- p = fCallback.insertSource(p, address, sourceFile, sourceLine);
+ if (sourceFile != null && firstLine >= 0) {
+ try {
+ p = fCallback.insertSource(p, address, sourceFile, firstLine, lastLine);
+ } catch (NoSuchMethodError nsme) {
+ // use fallback
+ p = fCallback.insertSource(p, address, sourceFile, firstLine);
+ }
}
// insert symbol label
@@ -740,7 +747,7 @@ public class TCFDisassemblyBackend implements IDisassemblyBackend {
Map<String, Object>[] instrAttrs = instruction.getInstruction();
String instr = formatInstruction(instrAttrs);
- p = fCallback.getDocument().insertDisassemblyLine(p, address, instrLength, functionOffset.toString(), instr, sourceFile, sourceLine);
+ p = fCallback.getDocument().insertDisassemblyLine(p, address, instrLength, functionOffset.toString(), instr, sourceFile, firstLine);
if (p == null) {
break;
}

Back to the top