mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
b45d50b690
- Fix build flakes - Polyfill SIGWINCH on Windows - Fix an execve issue on Windows - Make strerror show more information - Improve cmd.exe setup/teardown on Windows - Support bracketed paste mode in Blinkenlights - Show keyboard shortcuts in Blinkenlights status bar - Fixed copy_file_range() and copyfile() w/ zip filesystem - Size optimize GetDosArgv() to keep life.com 12kb in size - Improve Blinkenlights ability to load weird ELF executables - Fix program_executable_name and add GetInterpreterExecutableName - Make Python in tiny mode fail better if docstrings are requested - Update Python test exclusions in tiny* modes such as tinylinux - Add bulletproof unbreakable kprintf() troubleshooting function - Remove "oldskool" keyword from ape.S for virus scanners - Fix issue that caused backtraces to not print sometimes - Improve Blinkenlights serial uart character i/o - Make clock_gettime() not clobber errno on xnu - Improve sha256 cpuid check for old computers - Integrate some bestline linenoise fixes - Show runit process names better in htop - Remove SIGPIPE from ShowCrashReports() - Make realpath() not clobber errno - Avoid attaching GDB on non-Linux - Improve img.com example
46 lines
2.1 KiB
C
46 lines
2.1 KiB
C
#if 0
|
|
/*─────────────────────────────────────────────────────────────────╗
|
|
│ To the extent possible under law, Justine Tunney has waived │
|
|
│ all copyright and related or neighboring rights to this file, │
|
|
│ as it is written in the following disclaimers: │
|
|
│ • http://unlicense.org/ │
|
|
│ • http://creativecommons.org/publicdomain/zero/1.0/ │
|
|
╚─────────────────────────────────────────────────────────────────*/
|
|
#endif
|
|
#include "libc/log/log.h"
|
|
|
|
/**
|
|
* Automatically launchs GDB Debugger TUI during crash.
|
|
*
|
|
* Run the following inside a terminal:
|
|
*
|
|
* sudo apt install gdb
|
|
* make -j12 o//examples/auto-launch-gdb-on-crash.com
|
|
* o//examples/auto-launch-gdb-on-crash.com
|
|
*
|
|
* Backtrace is logged instead if run outside interactive terminal. We
|
|
* also don't auto-launch GDB on non-Linux since the development tools
|
|
* on other platforms generally can't be relied upon to correctly debug
|
|
* binaries built with a Linux toolchain. Environmental factors such as
|
|
* GDB, MAKEFLAGS, ADDR2LINE, TERM, and isatty(STDERR_FILENO) should
|
|
* also be taken into consideration:
|
|
*
|
|
* $ export GDB=eoatuhshtuone
|
|
* $ o//examples/auto-launch-gdb-on-crash.com
|
|
* error: Uncaught SIGTRAP
|
|
* etc. etc.
|
|
*
|
|
* @see https://www.felixcloutier.com/x86/intn:into:int3:int1
|
|
* @see https://en.wikipedia.org/wiki/INT_(x86_instruction)#INT3
|
|
* @see examples and reference material on using the asm() keyword
|
|
* - libc/nexgen32e/bsf.h
|
|
* - libc/nexgen32e/tzcnt.h
|
|
* - libc/nexgen32e/cpuid4.internal.h
|
|
* - https://gist.github.com/jart/fe8d104ef93149b5ba9b72912820282c
|
|
*/
|
|
|
|
int main(int argc, char *argv[]) {
|
|
showcrashreports();
|
|
asm("int3"); /* cf. __die(), perror("msg"), abort(), exit(1), _Exit(1) */
|
|
return 0;
|
|
}
|