This series contain fixes for winedump for debug information:
- it fixes a bunch of incorrect information dumping,
- it fixes a case of crash for .DBG files,
- it allows dumping very large PDB files (>4G)
Note: for the later item, current tools' read_file() doesn't work with
such large files.
Instead of fixing read_file(), I opted for letting a dumper for a
given file format to only use a fd to the target file, instead of
forcing all dumpers to work from a full in-memory image of the target
file. This is useful for PDB files, as their underlying storage
requires to reassemble non-contiguous blocks, so this saves memory
(the in-memory image of the target file) and one copy of the whole file.
This means that all functions to guess the file format now uses a fd
instead of the full image.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7212
Array selector data begins with 4 bytes length, followed by string
bytes. Right after the string starts the code blob, that we access
with (uint32_t *)(ptr + string_size) + 1. There is no separate
field to care about at (ptr + string_size).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7547
PathRemoveFileSpecW keeps only the drive if the path contains all forward slashes as shown in tests.
But then the temporary file is created in the root folder which fails for drive Z:.
This fixes a corner case when using CMake in Wine. Another usage of PathRemoveFileSpecW is in PathRelativePathToW which should be also checked.
I'm leaving this as a draft until getting some feedback and adding tests.
--
v4: kernelbase: Handle correctly paths with forward slashes in ReplaceFileW.
kernel32: Test ReplaceFileW with forward slashes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7290