-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Environment
- OS and version: AlmaLinux 8.10
- VS Code: 1.102.1 (and earlier)
- C/C++ extension: ms-vscode.cpptools-1.23.5-linux-x64 and later
- OS and version of remote machine (if applicable):
- GDB / LLDB version: gdb-8.2-20.el8.x86_64
Bug Summary and Steps to Reproduce
Bug Summary:
LIke many sites, we set a default file size ulimit to prevent users' runaway processes from consuming unlimited disk resources. When attempting to debug a C program with any file size limit less than 2TiB in place (cf. "grep 'Max file size' /proc/$$/limits"), the debugger crashes.
Steps to reproduce:
- Set a reasonable file size limit (e.g., "ulimit -f 25165824" from bash)
- Launch "code" from the shell prompt
- Open a .c file, build it, and set a breakpoint
- Select Run -> Start debugging
The debugger controls will appear briefly and disappear; the OpenDebugAD7 process will crash with SIGXFSZ.
Debugger Configurations
Default settings.
Debugger Logs
No messages in Debug Console or Output windows.
Other Extensions
No response
Additional Information
Attaching a system call tracer reveals that the process is attempting to truncate the file returned from a memfd_create("doublemapper") call to 2TB:
1354933 memfd_create("doublemapper", MFD_CLOEXEC) = 8
1354933 ftruncate(8, 2199023255552) = -1 EFBIG (File too large)
This may have the same root cause as microsoft/vscode#251037 .
Setting "C_Cpp_Runner.debuggerPath": "lldb" in settings.json may work around the issue (OpenDebugAD7 does not appear to run in this configuration), but this is not the default configuration.