getsentry / pdb

A parser for Microsoft PDB (Program Database) debugging information
https://docs.rs/pdb/
Apache License 2.0
400 stars 71 forks source link

Expose symbol kind constants such as S_PUB32 #120

Open mstange opened 2 years ago

mstange commented 2 years ago

Symbol has a public raw_kind method. But it's hard to do anything with the return value because it's a raw number and none of the constants you could compare it to are exposed.

For example, there are no results when searching the docs for S_PUB32.

I'd like to use raw_kind so that I can avoid calling parse on symbols which I intend to skip, for better performance. (Profile)

jan-auer commented 2 years ago

I'd like to use raw_kind so that I can avoid calling parse on symbols which I intend to skip, for better performance. (Profile)

Thanks that makes sense. The only issue I see with this is that it requires you to know the raw kinds for each of the symbols you'd like to parse. I'll tinker on this to see if I find a more convenient API.

Exposing the constants makes sense regardless. So far, we have them all exposed in enums like CPUType, which are great to match on, but not to work with as values. I'm now thinking of exposing them similar to gimli's constants module, in a typed yet open fashion.

mstange commented 2 years ago

Exposing the constants makes sense regardless. So far, we have them all exposed in enums like CPUType, which are great to match on, but not to work with as values. I'm now thinking of exposing them similar to gimli's constants module, in a typed yet open fashion.

That sounds good to me.

jan-auer commented 2 years ago

I'll have to move this to the next milestone and will release 0.8.0 without this for now.