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