OSDN Git Service

[Object/llvm-readelf/llvm-readobj] - Improve error reporting when e_shstrndx is broken.
authorGeorge Rimar <grimar@accesssoftek.com>
Tue, 16 Jul 2019 11:07:30 +0000 (11:07 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Tue, 16 Jul 2019 11:07:30 +0000 (11:07 +0000)
commit14563227452c3f20c5c4ac073e2c17020e826126
tree188c0e816e9159d0e66bb8b4e304e7864bfc2c44
parent2a4c4ba95ab13c4874de718c9c6893702bcb4b39
[Object/llvm-readelf/llvm-readobj] - Improve error reporting when e_shstrndx is broken.

When e_shstrndx is broken, it is impossible to get a section name.
In this patch I improved the error message we show and
added tests for Object and for llvm-readelf/llvm-readobj

Message was changed in two places:
1) llvm-readelf/llvm-readobj previously used a code from Object/ELF.h,
now they have a modified version of it (it has less checks and allows
dumping broken things).
2) Code in Object/ELF.h is still used for generic cases.

Differential revision: https://reviews.llvm.org/D64714

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366203 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Object/ELF.h
test/Object/invalid.test
test/tools/llvm-readobj/elf-invalid-shstrndx.test [new file with mode: 0644]
tools/llvm-readobj/ELFDumper.cpp
tools/llvm-readobj/llvm-readobj.cpp
tools/llvm-readobj/llvm-readobj.h