mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-04 18:28:30 +00:00
Restart CI for New Technology and UBSAN hunting
Continuous Integration (via runit and runitd) is now re-enabled on win7 and win10. The `make test` command, which runs the tests on all systems is now the fastest and most stable it's been since the project started. UBSAN is now enabled in MODE=dbg in addition to ASAN. Many instances of undefined behavior have been removed. Mostly things like passing a NULL argument to memcpy(), which works fine with Cosmopolitan Libc, but that doesn't prevents the compiler from being unhappy. There was an issue w/ GNU make where static analysis claims a sprintf() call can overflow. We also now have nicer looking crash reports on Windows since uname should now be supported and msys64 addr2line works reliably.
This commit is contained in:
parent
d5ff2c3fb9
commit
5e8ae2d5bc
80 changed files with 506 additions and 249 deletions
|
@ -42,7 +42,7 @@
|
|||
* possible UX for debugging your app, for varying levels of available
|
||||
* information, on most of the various platforms.
|
||||
*
|
||||
* Before calling this function, consider placing showcrashreports() in
|
||||
* Before calling this function, consider placing ShowCrashReports() in
|
||||
* your main function and calling DebugBreak() wherever you want; it's
|
||||
* safer. Also note the "GDB" environment variable can be set to empty
|
||||
* string, as a fail-safe for disabling this behavior.
|
||||
|
|
|
@ -79,7 +79,7 @@ static int PrintBacktraceUsingAddr2line(int fd, const struct StackFrame *bp) {
|
|||
* DWARF is a weak standard. Platforms that use LLVM or old GNU
|
||||
* usually can't be counted upon to print backtraces correctly.
|
||||
*/
|
||||
if (!IsLinux() /* && !IsWindows() */) {
|
||||
if (!IsLinux() && !IsWindows()) {
|
||||
ShowHint("won't print addr2line backtrace because probably llvm");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ relegated void ShowCrashReport(int err, int sig, struct siginfo *si,
|
|||
? "Stack Overflow"
|
||||
: GetSiCodeName(sig, si->si_code),
|
||||
host, __getpid(), program_invocation_name, names.sysname,
|
||||
names.nodename, names.release, names.version);
|
||||
names.version, names.nodename, names.release);
|
||||
if (ctx) {
|
||||
kprintf("%n");
|
||||
ShowFunctionCalls(ctx);
|
||||
|
|
|
@ -51,7 +51,7 @@ textexit static void __onkill(int sig, struct siginfo *si,
|
|||
|
||||
/**
|
||||
* Installs default handlers for friendly kill signals.
|
||||
* @see showcrashreports()
|
||||
* @see ShowCrashReports()
|
||||
*/
|
||||
void callexitontermination(sigset_t *opt_out_exitsigs) {
|
||||
struct sigaction sa;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue