Skip to content

Commit a8a14bc

Browse files
committed
When possible reject aliased pdb names using HASH
1 parent f5506fc commit a8a14bc

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

renderdoc/driver/shaders/dxbc/dxbc_container.cpp

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ struct DebugFile
152152
}
153153
}
154154

155+
RDCDEBUG("lz4 decompressed %s", path.c_str());
156+
155157
RDCASSERT(ret > 0, ret);
156158

157159
// we resize and memcpy instead of just doing .swap() because that would
@@ -162,7 +164,10 @@ struct DebugFile
162164

163165
if(DXBC::IsPDBFile(&contents[0], contents.size()))
164166
{
167+
size_t oldSize = contents.size();
165168
DXBC::UnwrapEmbeddedPDBData(contents);
169+
if(oldSize != contents.size())
170+
RDCDEBUG("PDB unwrapped %s", path.c_str());
166171
pdb = true;
167172
}
168173

@@ -1534,7 +1539,15 @@ void DXBCContainer::TryFetchSeparateDebugInfo(bytebuf &byteCode, const rdcstr &d
15341539
found.path = tempPath;
15351540
else if(!hasSuffix && FileIO::exists(tempPath + ".pdb"))
15361541
found.path = tempPath + ".pdb";
1537-
continue;
1542+
1543+
if(!found.empty())
1544+
{
1545+
RDCDEBUG("Found %s (matched using leaf %s) when looking for %s", found.path.c_str(),
1546+
tempPath.c_str(), originalPath.c_str());
1547+
1548+
// this may empty out found, if the hash doesn't match
1549+
found.ReadAndProcess(lz4, desiredHash);
1550+
}
15381551
}
15391552
else
15401553
{
@@ -1546,16 +1559,16 @@ void DXBCContainer::TryFetchSeparateDebugInfo(bytebuf &byteCode, const rdcstr &d
15461559
found.path = checkPath;
15471560
else if(!hasSuffix && FileIO::exists(checkPath + ".pdb"))
15481561
found.path = checkPath + ".pdb";
1549-
}
1550-
}
15511562

1552-
if(!found.empty())
1553-
{
1554-
RDCDEBUG("Found %s (matched using leaf %s) when looking for %s", found.path.c_str(),
1555-
tempPath.c_str(), originalPath.c_str());
1563+
if(!found.empty())
1564+
{
1565+
RDCDEBUG("Found %s (matched using leaf %s) when looking for %s", found.path.c_str(),
1566+
tempPath.c_str(), originalPath.c_str());
15561567

1557-
// this may empty out found, if the hash doesn't match
1558-
found.ReadAndProcess(lz4, desiredHash);
1568+
// this may empty out found, if the hash doesn't match
1569+
found.ReadAndProcess(lz4, desiredHash);
1570+
}
1571+
}
15591572
}
15601573

15611574
if(found.empty())

0 commit comments

Comments
 (0)