--- a/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Stack.java Tue Aug 24 12:16:27 2010 +0300
+++ b/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Stack.java Tue Aug 24 14:01:48 2010 +0300
@@ -36,6 +36,7 @@
public static final String TAG_ID = "id";
public static final String TAG_RANGE = "range";
public static final String TAG_HASH = "hash";
+ public static final String TAG_DETAILED_HASH = "detailed_hash";
public static final String TAG_LINK = "link";
public static final String TAG_STACK_ENTRY = "stack_entry";
public static final String ATTRIBUTE_SEG = "seg";
@@ -48,6 +49,7 @@
private final String stackType;
private final String stackRange;
private final String stackHash;
+ private final String stackDetailedHash;
private final String stackLinkRegister;
private final String stackStackPointer;
private final String stackProgramCounter;
@@ -68,13 +70,14 @@
* @param data stack entries
* @param cpsrStack defines whether this stack contains cpsr register
*/
- private Stack(int id, String type, String range, String hash, String linkRegister, String stackPointer,
+ private Stack(int id, String type, String range, String hash, String detailedHash, String linkRegister, String stackPointer,
String programCounter, boolean containsAccurateStackEntries, List<StackEntry> data,
boolean cpsrStack) {
stackId = id;
stackType = type;
stackRange = range;
stackHash = hash;
+ stackDetailedHash = detailedHash;
stackLinkRegister = linkRegister;
stackStackPointer = stackPointer;
stackProgramCounter = programCounter;
@@ -118,7 +121,11 @@
public String getHash() {
return stackHash;
}
-
+
+ public String getDetailedHash() {
+ return stackDetailedHash;
+ }
+
/**
* Writes stack data into given buffer (i.e. text file)
* @param out buffer to write to
@@ -132,7 +139,8 @@
writeLine(out, "--------");
writeLine(out, "Stack Type", stackType);
writeLine(out, "Stack Range", stackRange);
- writeLine(out, "Stack Hash", stackHash);
+ writeLine(out, "Defect Hash", stackHash);
+ writeLine(out, "Detailed Defect Hash", stackDetailedHash);
if (stackData != null && !stackData.isEmpty()) {
writeLine(out, "");
@@ -220,6 +228,11 @@
if (hash == null)
hash = "";
+ // read detailed defect hash if exists
+ String detailedHash = XmlUtils.getTextValue(elementThreadStack, TAG_DETAILED_HASH);
+ if (detailedHash == null)
+ detailedHash = "";
+
// read stack entries
List<StackEntry> entries = null;
NodeList stackEntries = elementThreadStack.getElementsByTagName(TAG_STACK_ENTRY);
@@ -246,7 +259,7 @@
}
}
- return new Stack(id, type, range, hash, linkRegister, stackPointer, programCounter,
+ return new Stack(id, type, range, hash, detailedHash, linkRegister, stackPointer, programCounter,
containsAccurateStackEntries, entries, cpsrStack);
} catch (Exception e) {
return null;