DynamoRIO / DynamoRIO/drmemory
drstrace fails on Windows UNC paths
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
**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):
1. Pick a network filesystem (SMB, MS-NFSv3, ms-nfs41-client, ...) from $ net use # output
2. CWD into such a filesystem
cd //derfw1fs10.global.loc/copy/Mainz/wingrendeltest1
3. Run drstrace
$ drstrace -- "$(cygpath -w "$PWD/sbin/nfs_mount")"
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
Contributor guide
Research direction
Reproduce the failure on Windows 10.0.19045.4957 by running drstrace from a Cygwin or PowerShell UNC path, then inspect drstrace/drstrace.c at line 589 and the log-file path handling around it. Done means drmemory runs successfully for a UNC path without the failed-to-open-log-file assertion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100