11#include < stdlib.h>
22#include < string.h>
33
4+ #include < cinttypes>
45#include < string>
56
67#include < lldb/API/SBExpressionOptions.h>
@@ -23,14 +24,6 @@ using lldb::addr_t;
2324
2425static std::string kConstantPrefix = " v8dbg_" ;
2526
26- static bool IsDebugMode () {
27- char * var = getenv (" LLNODE_DEBUG" );
28- if (var == nullptr ) return false ;
29-
30- return strlen (var) != 0 ;
31- }
32-
33-
3427void Module::Assign (SBTarget target, Common* common) {
3528 loaded_ = false ;
3629 target_ = target;
@@ -46,20 +39,20 @@ static int64_t LookupConstant(SBTarget target, const char* name, int64_t def,
4639
4740 SBSymbolContextList context_list = target.FindSymbols (name);
4841 if (!context_list.IsValid () || context_list.GetSize () == 0 ) {
49- err = Error::Failure (" Failed to find symbol" );
42+ err = Error::Failure (" Failed to find symbol %s " , name );
5043 return res;
5144 }
5245
5346 SBSymbolContext context = context_list.GetContextAtIndex (0 );
5447 SBSymbol symbol = context.GetSymbol ();
5548 if (!symbol.IsValid ()) {
56- err = Error::Failure (" Failed to fetch symbol" );
49+ err = Error::Failure (" Failed to fetch symbol %s " , name );
5750 return res;
5851 }
5952
6053 SBAddress start = symbol.GetStartAddress ();
6154 SBAddress end = symbol.GetEndAddress ();
62- size_t size = end.GetOffset () - start.GetOffset ();
55+ uint32_t size = end.GetOffset () - start.GetOffset ();
6356
6457 SBError sberr;
6558
@@ -79,12 +72,13 @@ static int64_t LookupConstant(SBTarget target, const char* name, int64_t def,
7972 int8_t tmp = process.ReadUnsignedFromMemory (addr, size, sberr);
8073 res = static_cast <int64_t >(tmp);
8174 } else {
82- err = Error::Failure (" Unexpected symbol size" );
75+ err = Error::Failure (" Unexpected symbol size %" PRIu32 " of symbol %s" ,
76+ size, name);
8377 return res;
8478 }
8579
8680 if (sberr.Fail ())
87- err = Error::Failure (" Failed to load symbol" );
81+ err = Error::Failure (" Failed to load symbol %s " , name );
8882 else
8983 err = Error::Ok ();
9084
@@ -95,7 +89,9 @@ static int64_t LookupConstant(SBTarget target, const char* name, int64_t def,
9589int64_t Module::LoadRawConstant (const char * name, int64_t def) {
9690 Error err;
9791 int64_t v = LookupConstant (target_, name, def, err);
98- if (err.Fail () && IsDebugMode ()) fprintf (stderr, " Failed to load %s\n " , name);
92+ if (err.Fail ()) {
93+ Error::PrintInDebugMode (" Failed to load raw constant %s" , name);
94+ }
9995
10096 return v;
10197}
@@ -105,7 +101,9 @@ int64_t Module::LoadConstant(const char* name, int64_t def) {
105101 Error err;
106102 int64_t v =
107103 LookupConstant (target_, (kConstantPrefix + name).c_str (), def, err);
108- if (err.Fail () && IsDebugMode ()) fprintf (stderr, " Failed to load %s\n " , name);
104+ if (err.Fail ()) {
105+ Error::PrintInDebugMode (" Failed to load constant %s" , name);
106+ }
109107
110108 return v;
111109}
@@ -118,7 +116,10 @@ int64_t Module::LoadConstant(const char* name, const char* fallback,
118116 LookupConstant (target_, (kConstantPrefix + name).c_str (), def, err);
119117 if (err.Fail ())
120118 v = LookupConstant (target_, (kConstantPrefix + fallback).c_str (), def, err);
121- if (err.Fail () && IsDebugMode ()) fprintf (stderr, " Failed to load %s\n " , name);
119+ if (err.Fail ()) {
120+ Error::PrintInDebugMode (" Failed to load constant %s, fallback %s" , name,
121+ fallback);
122+ }
122123
123124 return v;
124125}
0 commit comments