]> granicus.if.org Git - llvm/commit
Add GsymCreator and GsymReader.
authorGreg Clayton <clayborg@gmail.com>
Thu, 10 Oct 2019 17:10:11 +0000 (17:10 +0000)
committerGreg Clayton <clayborg@gmail.com>
Thu, 10 Oct 2019 17:10:11 +0000 (17:10 +0000)
commitc3cf1015fa65db38aaa08045725b3dbcc707fb28
treea6f5987f7e3ed9a424340effdc2429335e8898e6
parent5d52d6ae7d150f66f294db55ddf720972d5df2f6
Add GsymCreator and GsymReader.

This patch adds the ability to create GSYM files with GsymCreator, and read them with GsymReader. Full testing has been added for both new classes.

This patch differs from the original patch https://reviews.llvm.org/D53379 in that is uses a StringTableBuilder class from llvm instead of a custom version. Support for big and little endian files has been added. If the endianness matches the current host, we use efficient extraction for the header, address table and address info offset tables.

Differential Revision: https://reviews.llvm.org/D68744

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374381 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/DebugInfo/GSYM/FileWriter.h
include/llvm/DebugInfo/GSYM/GsymCreator.h [new file with mode: 0644]
include/llvm/DebugInfo/GSYM/GsymReader.h [new file with mode: 0644]
include/llvm/DebugInfo/GSYM/Header.h
lib/DebugInfo/GSYM/CMakeLists.txt
lib/DebugInfo/GSYM/FunctionInfo.cpp
lib/DebugInfo/GSYM/GsymCreator.cpp [new file with mode: 0644]
lib/DebugInfo/GSYM/GsymReader.cpp [new file with mode: 0644]
lib/DebugInfo/GSYM/Header.cpp
unittests/DebugInfo/GSYM/CMakeLists.txt
unittests/DebugInfo/GSYM/GSYMTest.cpp