Skip to content

Commit 39c04f8

Browse files
committed
fix
1 parent 7384e2d commit 39c04f8

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

source/loader/layers/sanitizer/linux/symbolizer.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,20 @@
1212

1313
namespace ur_sanitizer_layer {
1414

15-
llvm::symbolize::LLVMSymbolizer *GetSymbolizer() {
16-
static llvm::symbolize::LLVMSymbolizer Symbolizer;
17-
return &Symbolizer;
15+
llvm::symbolize::LLVMSymbolizer *GetSymbolizer(bool destruct = false) {
16+
static auto *Instance = new llvm::symbolize::LLVMSymbolizer{};
17+
if (destruct) {
18+
Instance = nullptr;
19+
delete Instance;
20+
}
21+
return Instance;
22+
}
23+
24+
// Let's destruct the symbolizer at the very end of exit process, at least
25+
// should be after the destructors of the SanitizerLayer since we may print
26+
// some symbolized information in the SanitizerLayer destructor.
27+
__attribute__((destructor(101))) void DestructSymbolizer() {
28+
GetSymbolizer(true);
1829
}
1930

2031
llvm::symbolize::PrinterConfig GetPrinterConfig() {

0 commit comments

Comments
 (0)