newlib-cygwin/winsup/cygwin
Jon Turney 91457377d6
Cygwin: Make 'ulimit -c' control writing a coredump
Pre-format a command to be executed on a fatal error to run 'dumper'
(using an absolute path).

Factor out executing a pre-formatted command, so we can use that for
invoking the JIT debugger in try_to_debug() (if error_start is present
in the CYGWIN env var) and to invoke dumper when a fatal error occurs.

On a fatal error, if the core file size limit is greater than 1MB,
invoke dumper to write a core dump. Otherwise, if that limit is greater
than 0, write a .stackdump file, as previously.

Adjust and clarify the associated documentation.

Also: Fix so that the error_start JIT debugger is now invoked, even when
ulimit -c is zero.

Also: Fix uses of console_printf() inside exec_prepared_command(). It's
output is written via the Windows console device, so needs to use
Windows-style line endings.

Also: consistently return non-zero from try_to_debug() if we debugged.

Future work: Truncate or remove the file written, if it exceeds the
maximum size set by the ulimit.

Future work: Using the words "fatal error" could probably be improved
on. This means exiting on one of the "certain signals whose default
action is to cause the process to terminate and produce a core dump
file".
2024-01-16 14:07:03 +00:00
..
DevDocs Cygwin: testsuite: Add x86_64 code to "dynamically load cygwin" test 2022-08-29 17:53:48 +01:00
fhandler Cygwin: fallocate(2): drop useless zeroing pointer 2023-12-04 10:20:55 +01:00
include Cygwin: introduce close_range(2) 2024-01-15 12:52:56 +01:00
lib Cygwin: drop __stdcall usage 2022-08-04 20:54:09 +02:00
libc Cygwin: fnmatch: fix range comparison in C locale 2023-07-27 21:57:49 +02:00
linux-locale-helpers Cygwin: fetch-lc-def-codesets-from-linux: fix locale name handling 2023-02-26 20:14:54 +01:00
local_includes Cygwin: Make 'ulimit -c' control writing a coredump 2024-01-16 14:07:03 +00:00
math Cygwin: fix return value of ilogbl(NaN) 2023-04-18 13:43:06 +02:00
mm Cygwin: shared: Fix access permissions setting in open_shared(). 2023-08-16 22:11:17 +09:00
regex Cygwin: regex: fix faulty check for valid range expression 2023-03-20 12:58:03 +01:00
release Cygwin: Make 'ulimit -c' control writing a coredump 2024-01-16 14:07:03 +00:00
scripts Cygwin: Add initial support for SOURCE_DATE_EPOCH 2023-09-10 14:42:21 +01:00
sec Cygwin: get_posix_access: do not merge permissions for just created files 2023-07-21 21:57:44 +02:00
tzcode winsup: delete old _LIBC logic 2021-11-10 20:16:15 -05:00
x86_64 Cygwin: x86_64: import swab.S from NetBSD 2022-12-20 10:19:23 +01:00
Makefile.am Cygwin: Add /dev/disk/by-id symlinks 2023-11-05 17:01:43 +01:00
advapi32.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
aio.cc Cygwin: fix build failure due to redefinition of __restrict in sys/cdefs.h 2023-08-07 16:04:32 +02:00
assert.cc
autoload.cc Cygwin: revert autoloading of DiscardVirtualMemory 2023-11-30 22:37:35 +01:00
automode.c
binmode.c
clock.cc Cygwin: drop wincap::has_precise_system_time 2022-12-04 14:01:41 +01:00
config.h.in
create_posix_thread.cc Cygwin: add memory_layout.h 2022-10-28 16:26:53 +02:00
crt0.c Cygwin: drop 32 bit considerations in crt0 code 2022-05-16 18:17:06 +02:00
ctype.cc Cygwin: fully support KOI8-T codeset 2023-02-25 16:12:51 +01:00
cxx.cc
cygthread.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
cygtls.cc Cygwin: tls_pathbuf: Use Windows heap 2022-08-23 12:09:44 +02:00
cygwait.cc Ensure nanosleep(2) never returns negative rem 2021-07-22 09:57:40 +02:00
cygwin.din Cygwin: introduce close_range(2) 2024-01-15 12:52:56 +01:00
cygwin.ldif
cygwin.sc.in Cygwin: drop objcopy .gnu_debuglink juggle 2022-10-28 16:26:53 +02:00
cygxdr.cc
dcrt0.cc Cygwin: execve: drop argument size limit 2023-08-29 14:17:04 +02:00
debug.cc Cygwin: debugging: convert muto to SRWLOCK 2022-08-22 14:38:49 +02:00
devices.cc Cygwin: Add /dev/disk/by-id symlinks 2023-11-05 17:01:43 +01:00
devices.in Cygwin: Add /dev/disk/by-id symlinks 2023-11-05 17:01:43 +01:00
dir.cc change _COMPILING_NEWLIB to _LIBC 2021-11-15 19:32:23 -05:00
dlfcn.cc Cygwin: remove miscellaneous 32-bit code 2022-05-29 17:54:32 -04:00
dll_init.cc Cygwin: remove most occurrences of __stdcall and __cdecl 2022-06-06 12:00:45 -04:00
dtable.cc Cygwin: Add /dev/disk/by-id symlinks 2023-11-05 17:01:43 +01:00
environ.cc Cygwin: Make 'ulimit -c' control writing a coredump 2024-01-16 14:07:03 +00:00
errno.cc Cygwin: create sparse errmap array 2022-08-04 15:16:48 +02:00
exceptions.cc Cygwin: Make 'ulimit -c' control writing a coredump 2024-01-16 14:07:03 +00:00
exec.cc Cygwin: rename __cygwin_environ and drop env redirection via cur_environ() 2022-07-28 22:00:40 +02:00
external.cc Cygwin: ctty: Replace ctty constant with more descriptive macros. 2023-03-07 10:51:29 +09:00
fcntl.cc Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
fenv.c
flock.cc Cygwin: flock: drop checking for artificial console handles 2022-12-04 14:01:41 +01:00
fork.cc Cygwin: fork: fix a potential hang in fork 2022-08-29 12:25:24 +02:00
forkable.cc Cygwin: unlink_nt: declare in winsup.h 2023-09-08 22:34:52 +02:00
gcrt0.c Revert "sys/types.h: Don't include sys/_stdint.h" 2022-05-04 15:08:44 +02:00
glob.cc Cygwin: glob: fix conversion from UTF-32 to multibyte 2023-03-03 18:19:17 +01:00
glob_pattern_p.cc
globals.cc Cygwin: convert __collate_range_cmp to __wcollate_range_cmp 2023-02-19 14:40:29 +01:00
gmon.c Cygwin: Zero out gmon header before use 2021-06-26 15:24:27 +01:00
grp.cc Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
hookapi.cc Cygwin: Fix previous attempt to drop i386 targets from hookapi 2022-07-28 16:38:01 +02:00
init.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
ioctl.cc
ipc.cc Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
kernel32.cc Cygwin: execve: drop argument size limit 2023-08-29 14:17:04 +02:00
ldap.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
libstdcxx_wrapper.cc Cygwin: remove miscellaneous 32-bit code 2022-05-29 17:54:32 -04:00
loadavg.cc
lsearch.cc
mcount.c
miscfuncs.cc Cygwin: rename CygwinCreateThread to create_posix_thread 2022-08-10 18:06:28 +02:00
mktemp.cc Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
mount.cc Cygwin: check remote drives for being SSDs as well 2024-01-08 11:45:13 +01:00
msg.cc
net.cc Cygwin: net.cc: convert wsock_errmap into a simple array of error codes 2022-08-04 11:45:58 +02:00
netdb.cc
nfs.cc
nlsfuncs.cc Cygwin: locales: drop unused has_modifier macro 2023-04-24 22:41:41 +02:00
ntea.cc Cygwin: use new XATTR_{NAME,SIZE}_MAX instead of MAX_EA_{NAME,VALUE}_LEN 2023-06-16 21:44:41 +02:00
passwd.cc Cygwin: simplify some function names 2022-05-29 17:45:52 -04:00
path.cc Cygwin: path.cc: fix comment starting with // but ending in */ 2024-01-11 13:21:54 +01:00
pinfo.cc Cygwin: ctty: Replace ctty constant with more descriptive macros. 2023-03-07 10:51:29 +09:00
poll.cc Cygwin: poll: Fix a bug on inquiring same fd with different events. 2022-06-27 10:54:24 +09:00
posix_ipc.cc Cygwin: move POSIX semaphore API functions to posix_ipc.cc 2022-08-10 18:11:57 +02:00
posix_timer.cc Cygwin: posix_timer: fix formatting 2022-08-22 14:53:30 +02:00
profil.c Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
pseudo-reloc.cc Cygwin: drop macro and code for CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL 2022-08-03 16:01:29 +02:00
quotactl.cc
random.cc Cygwin: rand(3): implement in terms of random(3) 2023-11-14 17:52:48 +01:00
registry.cc
resource.cc Cygwin: fix a few comments mentioning Windows 7 or 8 2022-12-04 14:01:41 +01:00
scandir.cc
sched.cc Cygwin: sys/cpuset.h: add cpuset-specific external functions 2023-09-01 12:38:52 +02:00
select.cc Cygwin: dsp: Improve response time of select()/poll(). 2023-09-07 17:36:04 +09:00
sem.cc
setlsapwd.cc
shm.cc Cygwin: shm: Convert muto into SRWLOCK and avoid overlocking 2022-08-22 14:28:11 +02:00
signal.cc Cygwin: remove regparm.h 2022-05-29 17:45:52 -04:00
sigproc.cc Cygwin: /proc/<PID>/status: avoid crash computing signal info 2023-01-10 11:48:02 +01:00
smallprint.cc Cygwin: smallprint.cc: Drop HEAP_ZERO_MEMORY 2022-08-22 17:58:53 +02:00
spawn.cc Cygwin: execve: drop argument size limit 2023-08-29 14:17:04 +02:00
strace.cc Cygwin: remove most occurrences of __stdcall and __cdecl 2022-06-06 12:00:45 -04:00
strfuncs.cc Cygwin: cXXrtomb, mbrtcXX: use function-specific internal state 2023-08-15 22:34:29 +02:00
strsep.cc Cygwin: C++17: register keyword is deprecated 2021-08-26 22:14:11 +02:00
strsig.cc Cygwin: signals: drop accidental spaces from real-time signal names 2023-03-15 21:44:52 +01:00
sync.cc
syscalls.cc Cygwin: introduce close_range(2) 2024-01-15 12:52:56 +01:00
sysconf.cc Cygwin: execve: drop argument size limit 2023-08-29 14:17:04 +02:00
syslog.cc
termios.cc Cygwin: drop macro and code for CYGWIN_VERSION_DLL_IS_OLD_TERMIOS 2022-08-03 15:35:29 +02:00
textmode.c
textreadmode.c
thread.cc Cygwin: don't wait infinitely on a pthread cancel event 2023-07-18 22:21:36 +02:00
timerfd.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
times.cc Cygwin: drop wincap::has_precise_system_time 2022-12-04 14:01:41 +01:00
tls_pbuf.cc Cygwin: tls_pathbuf: Use Windows heap 2022-08-23 12:09:44 +02:00
tty.cc Cygwin: ctty: Replace ctty constant with more descriptive macros. 2023-03-07 10:51:29 +09:00
uinfo.cc Do not rely on `getenv ("HOME")`'s path conversion 2023-06-06 15:18:53 +02:00
uname.cc Cygwin: uname: fix building in non-git source dir 2022-12-07 22:22:38 +01:00
wait.cc
wincap.cc wincap.cc: set wincap member has_user_shstk true for 2004+ 2023-06-20 10:06:56 +02:00
window.cc Cygwin: drop all usages of WINAPI 2022-08-04 22:13:59 +02:00
winf.cc
winver.rc