summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2018-03-19 19:53:51 +0000
committerZachary Turner <zturner@google.com>2018-03-19 19:53:51 +0000
commitde53aaf13249dcbd6f3d4fd3b28898c77fa074c8 (patch)
tree3b8061c1756ea52e9ff102b682e4e5615c6300c2 /llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
parenta2036e4945666aaf4579821121f4566dea7dd29d (diff)
downloadbcm5719-llvm-de53aaf13249dcbd6f3d4fd3b28898c77fa074c8.tar.gz
bcm5719-llvm-de53aaf13249dcbd6f3d4fd3b28898c77fa074c8.zip
Support embedding natvis files in PDBs.
Natvis is a debug language supported by Visual Studio for specifying custom visualizers. The /NATVIS option is an undocumented link.exe flag which will take a .natvis file and "inject" it into the PDB. This way, you can ship the debug visualizers for a program along with the PDB, which is very useful for postmortem debugging. This is implemented by adding a new "named stream" to the PDB with a special name of /src/files/<natvis file name> and simply copying the contents of the xml into this file. Additionally, we need to emit a single stream named /src/headerblock which contains a hash table of embedded files to records describing them. This patch adds this functionality, including the /NATVIS option to lld-link. Differential Revision: https://reviews.llvm.org/D44328 llvm-svn: 327895
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp')
-rw-r--r--llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp b/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
index 88c0076915b..9a3d3e3e247 100644
--- a/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
+++ b/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp
@@ -80,13 +80,13 @@ Error DebugCrossModuleImportsSubsection::commit(
Ids.push_back(&M);
std::sort(Ids.begin(), Ids.end(), [this](const T &L1, const T &L2) {
- return Strings.getStringId(L1->getKey()) <
- Strings.getStringId(L2->getKey());
+ return Strings.getIdForString(L1->getKey()) <
+ Strings.getIdForString(L2->getKey());
});
for (const auto &Item : Ids) {
CrossModuleImport Imp;
- Imp.ModuleNameOffset = Strings.getStringId(Item->getKey());
+ Imp.ModuleNameOffset = Strings.getIdForString(Item->getKey());
Imp.Count = Item->getValue().size();
if (auto EC = Writer.writeObject(Imp))
return EC;
OpenPOWER on IntegriCloud