Portable PDB reader row-size broken for MAUI
vaind opened this issue · 3 comments
When the Portable PDB reader iterates rows in the CustomDebugInformation
table in the attached .pdb
(see MauiApp1.zip), it determines the row size to be 6,
however when the same file is opened in ILSpy (actually, you need to open the .dll but it loads the .pdb), the row size, according to their offsets, is 8 (see the diff between offsets).
This causes all the rows except for the first one to be read incorrectly CustomDebugInformationIterator::next()
, thus not reading the embedded sources even though they're available.
I'm not yet sure what the issue is, any ideas @loewenheim ?
Fixing this should also revert #751
I'll have a look and see if I can find anything.
I'm pretty sure I've found the cause. The problem is that the parsing logic incorrectly assumes that the #Pdb
stream is always parsed before the #~
stream, which is not necessarily the case. The order is relevant because the #Pdb
stream contains the sizes of tables referenced by, but not contained in, the ppdb file, and without this information tables can't be parsed correctly.
Thanks for the quick fix @loewenheim