@@ -244,15 +244,20 @@ GetAndValidateInfo(const SymbolContext &sc) {
244
244
245
245
auto demangled_name = mangled.GetDemangledName ().GetStringRef ();
246
246
if (demangled_name.empty ())
247
- return llvm::createStringError (" Function does not have a demangled name." );
247
+ return llvm::createStringError (
248
+ " Function '%s' does not have a demangled name." ,
249
+ mangled.GetMangledName ().AsCString (" " ));
248
250
249
251
const std::optional<DemangledNameInfo> &info = mangled.GetDemangledInfo ();
250
252
if (!info)
251
- return llvm::createStringError (" Function does not have demangled info." );
253
+ return llvm::createStringError (
254
+ " Function '%s' does not have demangled info." , demangled_name.data ());
252
255
253
256
// Function without a basename is nonsense.
254
257
if (!info->hasBasename ())
255
- return llvm::createStringError (" Info do not have basename range." );
258
+ return llvm::createStringError (
259
+ " DemangledInfo for '%s does not have basename range." ,
260
+ demangled_name.data ());
256
261
257
262
return std::make_pair (demangled_name, *info);
258
263
}
@@ -278,7 +283,8 @@ GetDemangledTemplateArguments(const SymbolContext &sc) {
278
283
auto [demangled_name, info] = *info_or_err;
279
284
280
285
if (info.ArgumentsRange .first < info.BasenameRange .second )
281
- return llvm::createStringError (" Arguments in info are invalid." );
286
+ return llvm::createStringError (" Arguments range for '%s' is invalid." ,
287
+ demangled_name.data ());
282
288
283
289
return demangled_name.slice (info.BasenameRange .second ,
284
290
info.ArgumentsRange .first );
@@ -293,7 +299,9 @@ GetDemangledReturnTypeLHS(const SymbolContext &sc) {
293
299
auto [demangled_name, info] = *info_or_err;
294
300
295
301
if (info.ScopeRange .first >= demangled_name.size ())
296
- return llvm::createStringError (" Scope range is invalid." );
302
+ return llvm::createStringError (
303
+ " Scope range for '%s' LHS return type is invalid." ,
304
+ demangled_name.data ());
297
305
298
306
return demangled_name.substr (0 , info.ScopeRange .first );
299
307
}
@@ -307,7 +315,8 @@ GetDemangledFunctionQualifiers(const SymbolContext &sc) {
307
315
auto [demangled_name, info] = *info_or_err;
308
316
309
317
if (info.QualifiersRange .second < info.QualifiersRange .first )
310
- return llvm::createStringError (" Qualifiers range is invalid." );
318
+ return llvm::createStringError (" Qualifiers range for '%s' is invalid." ,
319
+ demangled_name.data ());
311
320
312
321
return demangled_name.slice (info.QualifiersRange .first ,
313
322
info.QualifiersRange .second );
@@ -321,8 +330,12 @@ GetDemangledReturnTypeRHS(const SymbolContext &sc) {
321
330
322
331
auto [demangled_name, info] = *info_or_err;
323
332
324
- if (info.QualifiersRange .first < info.ArgumentsRange .second )
325
- return llvm::createStringError (" Qualifiers range is invalid." );
333
+ if (info.QualifiersRange .first <
334
+ info.ArgumentsRange .second ) // TODO: Replace with .hasArgumentsRange()
335
+ // once #144549 lands.
336
+ return llvm::createStringError (
337
+ " Qualifiers range for '%s' RHS return type is invalid." ,
338
+ demangled_name.data ());
326
339
327
340
return demangled_name.slice (info.ArgumentsRange .second ,
328
341
info.QualifiersRange .first );
@@ -337,7 +350,8 @@ GetDemangledScope(const SymbolContext &sc) {
337
350
auto [demangled_name, info] = *info_or_err;
338
351
339
352
if (info.ScopeRange .second < info.ScopeRange .first )
340
- return llvm::createStringError (" Info do not have basename range." );
353
+ return llvm::createStringError (" Scope range for '%s' is invalid." ,
354
+ demangled_name.data ());
341
355
342
356
return demangled_name.slice (info.ScopeRange .first , info.ScopeRange .second );
343
357
}
@@ -360,8 +374,9 @@ static bool PrintDemangledArgumentList(Stream &s, const SymbolContext &sc) {
360
374
361
375
auto info_or_err = GetAndValidateInfo (sc);
362
376
if (!info_or_err) {
363
- LLDB_LOG_ERROR (GetLog (LLDBLog::Language), info_or_err.takeError (),
364
- " Failed to retrieve demangled info: {0}" );
377
+ LLDB_LOG_ERROR (
378
+ GetLog (LLDBLog::Language), info_or_err.takeError (),
379
+ " Failed to handle ${function.basename} frame-format variable: {0}" );
365
380
return false ;
366
381
}
367
382
auto [demangled_name, info] = *info_or_err;
@@ -1898,8 +1913,9 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1898
1913
case FormatEntity::Entry::Type::FunctionScope: {
1899
1914
auto scope_or_err = GetDemangledScope (sc);
1900
1915
if (!scope_or_err) {
1901
- LLDB_LOG_ERROR (GetLog (LLDBLog::Language), scope_or_err.takeError (),
1902
- " Failed to retrieve scope: {0}" );
1916
+ LLDB_LOG_ERROR (
1917
+ GetLog (LLDBLog::Language), scope_or_err.takeError (),
1918
+ " Failed to handle ${function.scope} frame-format variable: {0}" );
1903
1919
return false ;
1904
1920
}
1905
1921
@@ -1911,8 +1927,9 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1911
1927
case FormatEntity::Entry::Type::FunctionBasename: {
1912
1928
auto name_or_err = GetDemangledBasename (sc);
1913
1929
if (!name_or_err) {
1914
- LLDB_LOG_ERROR (GetLog (LLDBLog::Language), name_or_err.takeError (),
1915
- " Failed to retrieve basename: {0}" );
1930
+ LLDB_LOG_ERROR (
1931
+ GetLog (LLDBLog::Language), name_or_err.takeError (),
1932
+ " Failed to handle ${function.basename} frame-format variable: {0}" );
1916
1933
return false ;
1917
1934
}
1918
1935
@@ -1926,7 +1943,8 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1926
1943
if (!template_args_or_err) {
1927
1944
LLDB_LOG_ERROR (GetLog (LLDBLog::Language),
1928
1945
template_args_or_err.takeError (),
1929
- " Failed to retrieve template arguments: {0}" );
1946
+ " Failed to handle ${function.template-arguments} "
1947
+ " frame-format variable: {0}" );
1930
1948
return false ;
1931
1949
}
1932
1950
@@ -1962,7 +1980,8 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1962
1980
auto return_rhs_or_err = GetDemangledReturnTypeRHS (sc);
1963
1981
if (!return_rhs_or_err) {
1964
1982
LLDB_LOG_ERROR (GetLog (LLDBLog::Language), return_rhs_or_err.takeError (),
1965
- " Failed to retrieve RHS return type: {0}" );
1983
+ " Failed to handle ${function.return-right} frame-format "
1984
+ " variable: {0}" );
1966
1985
return false ;
1967
1986
}
1968
1987
@@ -1974,7 +1993,8 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1974
1993
auto return_lhs_or_err = GetDemangledReturnTypeLHS (sc);
1975
1994
if (!return_lhs_or_err) {
1976
1995
LLDB_LOG_ERROR (GetLog (LLDBLog::Language), return_lhs_or_err.takeError (),
1977
- " Failed to retrieve LHS return type: {0}" );
1996
+ " Failed to handle ${function.return-left} frame-format "
1997
+ " variable: {0}" );
1978
1998
return false ;
1979
1999
}
1980
2000
@@ -1985,8 +2005,9 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1985
2005
case FormatEntity::Entry::Type::FunctionQualifiers: {
1986
2006
auto quals_or_err = GetDemangledFunctionQualifiers (sc);
1987
2007
if (!quals_or_err) {
1988
- LLDB_LOG_ERROR (GetLog (LLDBLog::Language), quals_or_err.takeError (),
1989
- " Failed to retrieve function qualifiers: {0}" );
2008
+ LLDB_LOG_ERROR (
2009
+ GetLog (LLDBLog::Language), quals_or_err.takeError (),
2010
+ " Failed to handle ${function.qualifiers} frame-format variable: {0}" );
1990
2011
return false ;
1991
2012
}
1992
2013
@@ -1997,8 +2018,9 @@ bool CPlusPlusLanguage::HandleFrameFormatVariable(
1997
2018
case FormatEntity::Entry::Type::FunctionSuffix: {
1998
2019
auto suffix_or_err = GetDemangledFunctionSuffix (sc);
1999
2020
if (!suffix_or_err) {
2000
- LLDB_LOG_ERROR (GetLog (LLDBLog::Language), suffix_or_err.takeError (),
2001
- " Failed to retrieve suffix: {0}" );
2021
+ LLDB_LOG_ERROR (
2022
+ GetLog (LLDBLog::Language), suffix_or_err.takeError (),
2023
+ " Failed to handle ${function.suffix} frame-format variable: {0}" );
2002
2024
return false ;
2003
2025
}
2004
2026
0 commit comments