On 8/10/2022 9:29 PM, Tony Cook wrote:
While I get a SEGV from miniperl, a simple reproducer returns a
SIGTRAP:
tony@enceladus ~/dev/perl/git
$ cat newlocale-test.c
#include <locale.h>
#include <stdio.h>
int main() {
locale_t st = newlocale(LC_ALL_MASK, "C", (locale_t)0);
locale_t st2 = newlocale(LC_CTYPE_MASK, "en_US.UTF-8", st);
printf("Done\n");
return 0;
}
tony@enceladus ~/dev/perl/git
$ gcc -onewlocale-test -g newlocale-test.c
tony@enceladus ~/dev/perl/git
$ gdb ./newlocale-test.exe
GNU gdb (GDB) (Cygwin 11.2-1) 11.2
[...]
Reading symbols from ./newlocale-test.exe...
(gdb) r
Starting program: /home/tony/dev/perl/git/newlocale-test.exe
[New Thread 9176.0x3a8c]
[New Thread 9176.0x2014]
[New Thread 9176.0x2bc4]
[Thread 9176.0x2014 exited with code 3221225477]
[Thread 9176.0x3a8c exited with code 3221225477]
[Thread 9176.0x2bc4 exited with code 3221225477]
Program terminated with signal SIGTRAP, Trace/breakpoint trap.
The program no longer exists.
I can't explain the SIGTRAP (but you'll find a lot of information if you search
the internet). But I don't think it necessarily indicates a problem with
newlocale. What happens if you just run your test program normally, not under
gdb? It works fine for me:
$ ./newlocale-test.exe
$ echo $?
0
Ken
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple