From 25855fe2fea58e9f6ef0d80a4d251d8d5dacaa67 Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Mon, 7 Jan 2013 14:38:05 +0100 Subject: [PATCH] Code for searching for the _end symbol to facilitate stack monitoring ui --- se/sics/mspsim/util/ELF.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/se/sics/mspsim/util/ELF.java b/se/sics/mspsim/util/ELF.java index 1faddc9..4909eff 100644 --- a/se/sics/mspsim/util/ELF.java +++ b/se/sics/mspsim/util/ELF.java @@ -383,6 +383,7 @@ public class ELF { public MapTable getMap() { MapTable map = new MapTable(); + int sAddrHighest = -1; ELFSection name = sections[symTable.link]; int len = symTable.size; @@ -426,6 +427,10 @@ public class ELF { if (sAddr > 0 && sAddr < 0x100000) { String symbolName = sn; + + if (sAddr < 0x5c00 && sAddr > sAddrHighest) { + sAddrHighest = sAddr; + } // if (bind == ELFSection.SYMBIND_LOCAL) { // symbolName += " (" + currentFile + ')'; // } @@ -460,6 +465,11 @@ public class ELF { addr += symTable.getEntrySize(); } + if (sAddrHighest > 0) { + System.out.printf("Warning: Unable to parse _end symbol. I'm guessing that heap starts at 0x%05x\n", sAddrHighest); + map.setHeapStart(sAddrHighest); + } + return map; }