drstrace fails on Windows UNC paths
Describe the bug drstrace fails on UNC paths, but works on paths which have a traditional X:\path syntax
To Reproduce Steps to reproduce the behavior (using Cygwin UNC path //foo/bar/path, but powershell \foo\bar\path gives the same result):
- Pick a network filesystem (SMB, MS-NFSv3, ms-nfs41-client, ...) from $ net use # output
- CWD into such a filesystem cd //derfw1fs10.global.loc/copy/Mainz/wingrendeltest1
- Run drstrace $ drstrace -- "$(cygpath -w "$PWD/sbin/nfs_mount")" <Using system call file C:\Program Files (x86)\Dr. Memory\drmemory\logs\symcache\syscalls_x64.txt> ASSERT FAILURE: D:\a\drmemory\drmemory\drstrace\drstrace.c:589: outf != INVALID_FILE (failed to open log file)
Expected behavior drmemory should run
Actual behavior drmemory fails with "ASSERT FAILURE: D:\a\drmemory\drmemory\drstrace\drstrace.c:589: outf != INVALID_FILE (failed to open log file)"
Versions
-
What version of Dr. Memory are you using? $ drmemory -version Dr. Memory version 2.6.19989 -- build 0
-
Does the latest build from https://drmemory.org/page_download.html#sec_latest_build solve the problem?
No
- What operating system version are you running on? ("Windows 10" is not sufficient: give the release number.)
$ cmd /C 'ver' Microsoft Windows [Version 10.0.19045.4957]
- Is your application 32-bit or 64-bit?
64bit
Turns out no network share is required, just plan UNC paths.
-
Example (Cygwin shell): cd //localhost/c$/cygwin64/home/roland_mainz/tmp/drstracetest $ drstrace -debug -- "$(cygpath -w /home/roland_mainz/work/msnfs41_uidmapping/ms-nfs41-client/destdir/cygdrive/c/cygwin64/sbin/nfs_mount)" <Using system call file C:\Program Files (x86)\Dr. Memory\drmemory\logs\symcache\syscalls_x64.txt> ASSERT FAILURE: D:\a\drmemory\drmemory\drstrace\drstrace.c:589: outf != INVALID_FILE (failed to open log file)
-
Example (Powershell): cd '\localhost\c$\cygwin64\home\roland_mainz\tmp\drstracetest' drstrace -debug -- 'C:\cygwin64\home\roland_mainz\work\msnfs41_uidmapping\ms-nfs41-client\destdir\cygdrive\c\cygwin64\sbin\nfs_mount.exe' <Using system call file C:\Program Files (x86)\Dr. Memory\drmemory\logs\symcache\syscalls_x64.txt> ASSERT FAILURE: D:\a\drmemory\drmemory\drstrace\drstrace.c:589: outf != INVALID_FILE (failed to open log file)
Correction: Powershell path syntax for local drive C: is '\localhost\c$\cygwin64\home\roland_mainz\tmp\drstracetest' in this case