[PATCH 1/5] Cygwin: Make 'ulimit -c' control writing a coredump

Jon Turney jon.turney@dronecode.org.uk
Tue Jan 16 13:52:22 GMT 2024


On 15/01/2024 14:28, Corinna Vinschen wrote:
> On Jan 15 13:27, Jon Turney wrote:
>> On 15/01/2024 09:46, Corinna Vinschen wrote:
>>> On Jan 13 14:20, Jon Turney wrote:
>>>> On 12/01/2024 14:09, Jon Turney wrote:
>>>>> +
>>>>> +  PWCHAR cp = dumper_command;
>>>>> +  cp = wcpcpy (cp, L"\"");
>>>>> +  cp = wcpcpy (cp, dll_dir);
>>>>> +  cp = wcpcpy (cp, L"\\dumper.exe");
>>>>> +  cp = wcpcpy (cp, L"\" ");
>>>>> +  cp = wcpcpy (cp, L"\"");
>>>>> +  cp = wcpcpy (cp, global_progname);
>>>>
>>>> I wonder if this should be program_invocation_short_name, so that the
>>>> coredump is created in the cwd, rather than next to the executable.

So, when I actually look further into this, what I wrote is utter 
nonsense. dumper/minidumper includes the following:

>       ssize_t len = cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
>                                       *(argv + optind), NULL, 0);
>       char *win32_name = (char *) alloca (len);
>       cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE,  *(argv + optind),
>                         win32_name, len);
>       if ((p = strrchr (win32_name, '\\')))
>         p++;
>       else
>         p = win32_name;

My eyes moving over this lightly, my brain assumes it just converts from 
a Win32 path to a POSIX path, but actually it does:

1) convert from POSIX path to Windows path (assuming it's a no-op if the 
path is already in a Windows form
2) (now having a consistent path delimiter) use the part after the last 
delimiter (if any), as the basename.

So: no problem here, after all. coredump file is already created in the cwd.



More information about the Cygwin-patches mailing list