Skip to content

Commit a6ed756

Browse files
committed
Remove use of demangleAll helper function
This was used to demangle C++ symbols JS stacktraces. However for a long time now native symbols in JS backtraces are already demanged because names in the name section are in demangled form. So this function has not done anything for a very long time. As a followup I think we can probably completely remove the `DEMANGLE_SUPPORT` settings.
1 parent fb4bdc7 commit a6ed756

12 files changed

+12
-32
lines changed

site/source/docs/api_reference/preamble.js.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,6 @@ The :ref:`emscripten-memory-model` uses a typed array buffer (``ArrayBuffer``) t
369369
Module['HEAP'] = HEAP;
370370
Module['IHEAP'] = IHEAP;
371371
function demangle(func)
372-
function demangleAll(text)
373372
function parseJSFunc(jsfunc)
374373
function callRuntimeCallbacks(callbacks)
375374
function preRun()

site/source/docs/tools_reference/settings_reference.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,7 @@ Print out exceptions in emscriptened code.
409409
DEMANGLE_SUPPORT
410410
================
411411

412-
If 1, build in libcxxabi's full c++ demangling code, to allow stackTrace()
413-
to emit fully proper demangled c++ names
412+
If 1, export `demangle` and `stackTrace` helper function.
414413

415414
.. _library_debug:
416415

src/library_fs.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ addToLibrary({
2929
#endif
3030
#if ASSERTIONS
3131
'$ERRNO_MESSAGES', '$ERRNO_CODES',
32-
#endif
33-
#if ASSERTIONS && !MINIMAL_RUNTIME
34-
'$demangleAll',
3532
#endif
3633
],
3734
$FS__postset: function() {
@@ -1441,7 +1438,6 @@ FS.staticInit();` +
14411438
if (this.stack) {
14421439
// Define the stack property for Node.js 4, which otherwise errors on the next line.
14431440
Object.defineProperty(this, "stack", { value: (new Error).stack, writable: true });
1444-
this.stack = demangleAll(this.stack);
14451441
}
14461442
#endif // ASSERTIONS
14471443
};

src/library_stack_trace.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,6 @@ var LibraryStackTrace = {
4242
#endif // DEMANGLE_SUPPORT
4343
},
4444

45-
$demangleAll__deps: ['$demangle'],
46-
$demangleAll: (text) => {
47-
var regex =
48-
/\b_Z[\w\d_]+/g;
49-
return text.replace(regex,
50-
function(x) {
51-
var y = demangle(x);
52-
return x === y ? x : (y + ' [' + x + ']');
53-
});
54-
},
55-
5645
$jsStackTrace: function() {
5746
var error = new Error();
5847
if (!error.stack) {
@@ -70,11 +59,11 @@ var LibraryStackTrace = {
7059
return error.stack.toString();
7160
},
7261

73-
$stackTrace__deps: ['$jsStackTrace', '$demangleAll'],
62+
$stackTrace__deps: ['$jsStackTrace'],
7463
$stackTrace: function() {
7564
var js = jsStackTrace();
7665
if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
77-
return demangleAll(js);
66+
return js;
7867
}
7968
}
8069

src/memoryprofiler.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,6 @@ var emscriptenMemoryProfiler = {
434434
},
435435

436436
printHeapResizeLog(heapResizes) {
437-
var demangler = typeof demangleAll != 'undefined' ? demangleAll : (x) => x;
438437
var html = '';
439438
for (var i = 0; i < heapResizes.length; ++i) {
440439
var j = i+1;
@@ -448,7 +447,7 @@ var emscriptenMemoryProfiler = {
448447
var resizeFirst = heapResizes[i];
449448
var resizeLast = heapResizes[j-1];
450449
var count = j - i;
451-
html += '<div style="background-color: ' + resizeFirst.color + '"><b>' + resizeFirst.begin + '-' + resizeLast.end + ' (' + count + ' times, ' + emscriptenMemoryProfiler.formatBytes(resizeLast.end-resizeFirst.begin) + ')</b>:' + demangler(resizeFirst.filteredStack || resizeFirst.stack) + '</div><br>';
450+
html += '<div style="background-color: ' + resizeFirst.color + '"><b>' + resizeFirst.begin + '-' + resizeLast.end + ' (' + count + ' times, ' + emscriptenMemoryProfiler.formatBytes(resizeLast.end-resizeFirst.begin) + ')</b>:' + (resizeFirst.filteredStack || resizeFirst.stack) + '</div><br>';
452451
i = j-1;
453452
}
454453
return html;
@@ -599,7 +598,6 @@ var emscriptenMemoryProfiler = {
599598
html += self.printHeapResizeLog(self.sbrkSources);
600599
html += '</div>'
601600
} else {
602-
var demangler = typeof demangleAll != 'undefined' ? demangleAll : (x) => x;
603601
// Print out statistics of individual allocations if they were tracked.
604602
if (Object.keys(self.allocationsAtLoc).length > 0) {
605603
var calls = [];
@@ -615,7 +613,7 @@ var emscriptenMemoryProfiler = {
615613
}
616614
html += '<h4>Allocation sites with more than ' + self.formatBytes(self.trackedCallstackMinSizeBytes) + ' of accumulated allocations, or more than ' + self.trackedCallstackMinAllocCount + ' simultaneously outstanding allocations:</h4>'
617615
for (var i in calls) {
618-
if (calls[i].length == 3) calls[i] = [calls[i][0], calls[i][1], calls[i][2], demangler(calls[i][2])];
616+
if (calls[i].length == 3) calls[i] = [calls[i][0], calls[i][1], calls[i][2], calls[i][2]];
619617
html += "<b>" + self.formatBytes(calls[i][1]) + '/' + calls[i][0] + " allocs</b>: " + calls[i][3] + "<br />";
620618
}
621619
}

src/settings.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,7 @@ var EMULATE_FUNCTION_POINTER_CASTS = false;
337337
// [link]
338338
var EXCEPTION_DEBUG = false;
339339

340-
// If 1, build in libcxxabi's full c++ demangling code, to allow stackTrace()
341-
// to emit fully proper demangled c++ names
340+
// If 1, export `demangle` and `stackTrace` helper function.
342341
// [link]
343342
var DEMANGLE_SUPPORT = false;
344343

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8412
1+
8408
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
23081
1+
23069
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7242
1+
7238
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19705
1+
19693
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
58257
1+
58240
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
57099
1+
57082

0 commit comments

Comments
 (0)