Skip to content
This repository has been archived by the owner on Apr 23, 2024. It is now read-only.

Consider Changing Canonical Case Rules #93

Open
mitsuhiko opened this issue Apr 20, 2019 · 2 comments
Open

Consider Changing Canonical Case Rules #93

mitsuhiko opened this issue Apr 20, 2019 · 2 comments
Assignees
Milestone

Comments

@mitsuhiko
Copy link

Since case insensitive file systems are not exactly the rage there are quite a few symbol servers out there which require exactly the Microsoft emitted case rules which are different from the ones in the SSQP document.

In particular the rules that those servers are following are:

  • PDB signature: all uppercase
  • PE signature: coff timestamp uppercase, coff image size lowercase
  • The PDB file should retain the original case information (Foo.pdb instead of foo.pdb) in the example.

SSQP currently defines:

  • PDB signature: lowercase but age uppercase
  • PE signature: all lowercase
  • PDB file name: changed to lowercase
@mikem8361
Copy link
Member

/cc: @noahfalk

@mikem8361 mikem8361 self-assigned this Jan 3, 2020
@randomascii
Copy link

In addition the spec (https://github.com/dotnet/symstore/blob/master/docs/specs/SSQP_Key_Conventions.md) actually contradicts itself in vital areas. It says that "Unless otherwise specified" "Convert each of those chunks to the corresponding lower case hexadecimal character." and it doesn't specify otherwise for the age, or give a >= 10 example for the age except for the constant FFFFFFFF. A strict reading of the spec suggests that age should be lower-case except for FFFFFFFF.

As @mitsuhiko says, consistency with the original symbol server rules is critical. WPA, windbg, and VS will continue to use the old rules, and case-sensitive symbol servers will continue to require them. This is also an opportunity to document the existing rules (but not change them).

I documented the rules as best I could here: https://randomascii.wordpress.com/2013/03/09/symbols-the-microsoft-way/

I recently wrote about how to create a (case-sensitive) symbol server here: https://randomascii.wordpress.com/2020/03/14/creating-a-public-symbol-server-easily/

@mikem8361 mikem8361 added this to the Future milestone Mar 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants