10
10
#include " llvm/DebugInfo/Symbolize/DIPrinter.h"
11
11
#include " llvm/DebugInfo/Symbolize/Symbolize.h"
12
12
13
- namespace ur_sanitizer_layer {
14
-
15
- llvm::symbolize::LLVMSymbolizer *GetSymbolizer () {
16
- static llvm::symbolize::LLVMSymbolizer Symbolizer;
17
- return &Symbolizer;
18
- }
19
-
20
- llvm::symbolize::PrinterConfig GetPrinterConfig () {
13
+ static llvm::symbolize::PrinterConfig GetPrinterConfig () {
21
14
llvm::symbolize::PrinterConfig Config;
22
15
Config.Pretty = false ;
23
16
Config.PrintAddress = false ;
@@ -27,35 +20,32 @@ llvm::symbolize::PrinterConfig GetPrinterConfig() {
27
20
return Config;
28
21
}
29
22
30
- } // namespace ur_sanitizer_layer
31
-
32
23
extern " C" {
33
24
34
25
void SymbolizeCode (const char *ModuleName, uint64_t ModuleOffset,
35
26
char *ResultString, size_t ResultSize, size_t *RetSize) {
36
27
std::string Result;
37
28
llvm::raw_string_ostream OS (Result);
38
29
llvm::symbolize::Request Request{ModuleName, ModuleOffset};
39
- llvm::symbolize::PrinterConfig Config =
40
- ur_sanitizer_layer::GetPrinterConfig ();
30
+ llvm::symbolize::PrinterConfig Config = GetPrinterConfig ();
41
31
llvm::symbolize::ErrorHandler EH = [&](const llvm::ErrorInfoBase &ErrorInfo,
42
32
llvm::StringRef ErrorBanner) {
43
33
OS << ErrorBanner;
44
34
ErrorInfo.log (OS);
45
35
OS << ' \n ' ;
46
36
};
47
- auto Printer =
48
- std::make_unique< llvm::symbolize::LLVMPrinter> (OS, EH, Config);
37
+ llvm::symbolize::LLVMSymbolizer Symbolizer;
38
+ llvm::symbolize::LLVMPrinter Printer (OS, EH, Config);
49
39
50
- auto ResOrErr = ur_sanitizer_layer::GetSymbolizer ()-> symbolizeInlinedCode (
40
+ auto ResOrErr = Symbolizer. symbolizeInlinedCode (
51
41
ModuleName,
52
42
{ModuleOffset, llvm::object::SectionedAddress::UndefSection});
53
43
54
44
if (!ResOrErr) {
55
45
return ;
56
46
}
57
- Printer-> print (Request, *ResOrErr);
58
- ur_sanitizer_layer::GetSymbolizer ()-> pruneCache ();
47
+ Printer. print (Request, *ResOrErr);
48
+ Symbolizer. pruneCache ();
59
49
if (RetSize) {
60
50
*RetSize = Result.size () + 1 ;
61
51
}
0 commit comments