[all-commits] [llvm/llvm-project] cf1046: [lldb] Fix+re-enable Assert StackFrame Recognizer ...
Jan Kratochvil via All-commits
all-commits at lists.llvm.org
Fri Feb 7 13:25:06 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: cf1046c716b33ed449aa8fc26376864917c63c25
https://github.com/llvm/llvm-project/commit/cf1046c716b33ed449aa8fc26376864917c63c25
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date: 2020-02-07 (Fri, 07 Feb 2020)
Changed paths:
M lldb/source/Target/AssertFrameRecognizer.cpp
M lldb/test/Shell/Recognizer/assert.test
Log Message:
-----------
[lldb] Fix+re-enable Assert StackFrame Recognizer on Linux
D73303 was failing on Fedora Linux and so it was disabled by Skip the
AssertFrameRecognizer test for Linux.
On Fedora 30 x86_64 I have:
$ readelf -Ws /lib64/libc.so.6 |grep '^Symbol\|.*assert_fail'
Symbol table '.dynsym' contains 2362 entries:
630: 0000000000030520 70 FUNC GLOBAL DEFAULT 14 __assert_fail@@GLIBC_2.2.5
Symbol table '.symtab' contains 22711 entries:
922: 000000000002275a 15 FUNC LOCAL DEFAULT 14 __assert_fail_base.cold
18044: 0000000000030520 70 FUNC LOCAL DEFAULT 14 __GI___assert_fail
20081: 00000000000303a0 370 FUNC LOCAL DEFAULT 14 __assert_fail_base
21766: 0000000000030520 70 FUNC GLOBAL DEFAULT 14 __assert_fail
The patch should never expect __GI___assert_fail:
.symtab can be present or not but that should not change that
__assert_fail always wins - it is always present from .dynsym and it can
never be overriden by __GI___assert_fail as __GI___assert_fail has only
local binding. Global binding is preferred since D63540.
External debug info symbols do not matter since D55859 (and DWARF should
never be embedded in system libc.so.6).
Differential Revision: https://reviews.llvm.org/D74252
More information about the All-commits
mailing list