forked from OSchip/llvm-project
Revert "[lldb] Fix+re-enable Assert StackFrame Recognizer on Linux"
This reverts commit cf1046c716
.
Reverted: https://reviews.llvm.org/D74252
It fixed testsuite but broke real world functionality where is not used:
settings set symbols.enable-external-lookup false
This commit is contained in:
parent
7b627bb6e0
commit
6ef4786dbc
|
@ -16,6 +16,26 @@ using namespace lldb;
|
||||||
using namespace lldb_private;
|
using namespace lldb_private;
|
||||||
|
|
||||||
namespace lldb_private {
|
namespace lldb_private {
|
||||||
|
/// Checkes if the module containing a symbol has debug info.
|
||||||
|
///
|
||||||
|
/// \param[in] target
|
||||||
|
/// The target containing the module.
|
||||||
|
/// \param[in] module_spec
|
||||||
|
/// The module spec that should contain the symbol.
|
||||||
|
/// \param[in] symbol_name
|
||||||
|
/// The symbol's name that should be contained in the debug info.
|
||||||
|
/// \return
|
||||||
|
/// If \b true the symbol was found, \b false otherwise.
|
||||||
|
bool ModuleHasDebugInfo(Target &target, FileSpec &module_spec,
|
||||||
|
StringRef symbol_name) {
|
||||||
|
ModuleSP module_sp = target.GetImages().FindFirstModule(module_spec);
|
||||||
|
|
||||||
|
if (!module_sp)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return module_sp->FindFirstSymbolWithNameAndType(ConstString(symbol_name));
|
||||||
|
}
|
||||||
|
|
||||||
/// Fetches the abort frame location depending on the current platform.
|
/// Fetches the abort frame location depending on the current platform.
|
||||||
///
|
///
|
||||||
/// \param[in] process_sp
|
/// \param[in] process_sp
|
||||||
|
@ -40,6 +60,8 @@ GetAbortLocation(Process *process) {
|
||||||
break;
|
break;
|
||||||
case llvm::Triple::Linux:
|
case llvm::Triple::Linux:
|
||||||
module_spec = FileSpec("libc.so.6");
|
module_spec = FileSpec("libc.so.6");
|
||||||
|
symbol_name = "__GI_raise";
|
||||||
|
if (!ModuleHasDebugInfo(target, module_spec, symbol_name))
|
||||||
symbol_name = "raise";
|
symbol_name = "raise";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -76,6 +98,8 @@ GetAssertLocation(Process *process) {
|
||||||
break;
|
break;
|
||||||
case llvm::Triple::Linux:
|
case llvm::Triple::Linux:
|
||||||
module_spec = FileSpec("libc.so.6");
|
module_spec = FileSpec("libc.so.6");
|
||||||
|
symbol_name = "__GI___assert_fail";
|
||||||
|
if (!ModuleHasDebugInfo(target, module_spec, symbol_name))
|
||||||
symbol_name = "__assert_fail";
|
symbol_name = "__assert_fail";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# UNSUPPORTED: system-windows
|
# UNSUPPORTED: system-windows, system-linux
|
||||||
# RUN: %clang_host -g -O0 %S/Inputs/assert.c -o %t.out
|
# RUN: %clang_host -g -O0 %S/Inputs/assert.c -o %t.out
|
||||||
# RUN: %lldb -b -s %s %t.out | FileCheck %s
|
# RUN: %lldb -b -s %s %t.out | FileCheck %s
|
||||||
run
|
run
|
||||||
|
|
Loading…
Reference in New Issue