By using some informations located in siginfo_t for tracing,
it remain accessible to be inspected by debugger even if the
code compiled with optimisation flags (typically -O2).
2025-01-17 14:43:47 -07:00
Kjell Hedström - seeking Senior Engineering roles as well as contract opportunities
* clang format configuration file replaces sublime Astyleformatter
* instructions added to pull request template
* code base re-formatted to be consistent throughout.
Improvement for Docker run C++ applications with g3log
* This addresses the case when a PID1 process crashes and the signal handling, goes into multiple or even infinite loops due to subsequent crashes. The PR makes sure to restore all signal handlers to the original signal handling after the first crash is detected. For
raise() system call does the same as kill() system call in a
single-threaded program.
In a multithreaded program, it does the same as pthread_kill() which
ensures that if the signal causes a handler to be called, raise() will
return only after the signal handler has returned.
* restore original sigaction in restoreSignalHandler
- Save original sigactions in a map called gSavedSigActions
- In restoreSignalHandler, do nothing if there is no saved sigaction.
If there is a saved sigaction, then re-install it.
- Fixes issue #253
* fix bug found in code review of PR #254
* add functions for reporting sigaction errors
- Factor out reportSigactionError functions from functions that
call sigaction to allow unit testing.
- Use strsignal libc function to convert from signal number to name
to eliminate chance of not finding the name in {g,k}Signals maps.
* cleanup. perror doesn't need a wrapper. put code under test
* create a Xcode project
* fixed to implicit type casting
* Revert "create a Xcode project"
This reverts commit e3216391f536fa41c47067fdb0296c56bafa11fa.
1) Breaking change: g3 namespace replaces g2
2) g2log.hpp remains in src/g2log.hpp... but now all it does is to include the g3log.hpp, etc
3) ALL HEADER FILES ARE IN src/g3log/ while all .cpp and .ipp files are in /src (exception for g2log.hpp)
This should make it EASIER for clients to copy/install the header files to the new location. It greatly simplifies
rpm and cpackage installationsw
All other are under g3log. Example: #include <g3log/time.hpp> #include <g3log/g3log.hpp> etc
This makes sure that the package manager (to be used soon) does NOT clutter any /usr/local/include space
instead all the includes will be in /usr/local/include/g3log (or similar)