Handle function names in backtraces

This commit is contained in:
Gaël Métais
2015-01-19 12:16:56 +01:00
parent e6bd0d0006
commit cac36727e8
4 changed files with 19 additions and 8 deletions
+13 -6
View File
@@ -107,13 +107,19 @@ var OffendersHelpers = function() {
var parts = null;
for (var i=0 ; i<traceArray.length ; i++) {
parts = /^([^ ]+):(\d*)$/.exec(traceArray[i]);
parts = /^(([\w$]+) )?([^ ]+):(\d+)$/.exec(traceArray[i]);
if (parts) {
results.push({
file: parts[1],
line: parseInt(parts[2], 10)
});
var obj = {
file: parts[3],
line: parseInt(parts[4], 10)
};
if (parts[2]) {
obj.functionName = parts[2];
}
results.push(obj);
} else {
return null;
}
@@ -131,7 +137,8 @@ var OffendersHelpers = function() {
var html = '<div class="offenderButton opens">backtrace<div class="backtrace">';
backtraceArray.forEach(function(backtraceObj) {
html += '<div><a href="' + backtraceObj.file + '" target="_blank">' + backtraceObj.file + '</a> line ' + backtraceObj.line + '</div>';
var functionName = (backtraceObj.functionName) ? backtraceObj.functionName + '() ' : '';
html += '<div>' + functionName + '<a href="' + backtraceObj.file + '" target="_blank">' + backtraceObj.file + '</a> line ' + backtraceObj.line + '</div>';
});
return html + '</div></div>';
};