Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cv2pdb converted a PDB that neither IDA nor WinDbg recognize #87

Open
Zero-Tang opened this issue Apr 17, 2023 · 5 comments
Open

cv2pdb converted a PDB that neither IDA nor WinDbg recognize #87

Zero-Tang opened this issue Apr 17, 2023 · 5 comments

Comments

@Zero-Tang
Copy link

I'm working with QEMU. I added --enable-debug and --enable-debug-info options in configuring the QEMU maker.
After cv2pdb extracted a PDB file, neither IDA nor WinDbg can obtain debug symbol from it.
This PDB file must be weird because DIA2Dump can see all symbol information.

@rainers
Copy link
Owner

rainers commented Apr 18, 2023

It's hard to say without further information. I suspect the executable and the debug information are quite large for qemu. Can you provide an example? Can you reduce it to something managable?

Maybe cvdump.exe from https://github.com/microsoft/microsoft-pdb/tree/master/cvdump can detect inaccuracies in the resulting PDB file.

@Zero-Tang
Copy link
Author

I don't think I saw inaccuracies from cvdump. It seems cvdump has similar functionality to dia2dump.
Anyway, here is an example.
qemu-system-x86_64.2.zip
Symbols can be dumped by cvdump and dia2dump (and I guess that's accurate because I can see my added functions), but ida and windbg just can't load them.

@rainers
Copy link
Owner

rainers commented Apr 18, 2023

I can load your pdb in an ancient version of IDA, but the latest one reports:

PDB: using PDBIDA provider
PDB: loading C:\tmp\qemu\qemu-system-x86_64.2.pdb
PDB: There is no IPI stream
PDB: loaded 13092 types
PDB: total 0 symbols loaded for "C:\tmp\qemu\qemu-system-x86_64.2.pdb"

So type info seems to be ok, but symbols are not loaded, maybe because an "IPI stream" is missing. No idea what this is, but there is a small disabled code segment at https://github.com/rainers/cv2pdb/blob/master/src/cv2pdb.cpp#L189 that might create it (but leave empty). Maybe try enabling these lines.

@Zero-Tang
Copy link
Author

No it didn't work. I probably have to find another way to get a usable pdb.

@Zero-Tang
Copy link
Author

qemu-system-x86_64.zip
In case you need a sample, I post the QEMU with dwarf symbols here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants