Menu

Released v1.4.3

Known BUGS:
1. Test program randomly fails on a single-core x86/amd64 CPUs or when the affinity is set to a single core. It's really hard to trace programs which are changing the stacks, so currently this problem is not solved. However, at this moment it seems that the kernel and/or pthread implemetation has a bug. The test have never failed on a single-core ARM build - this is interesting... (GCC bug?). None of the real-life apps have exposed this problem (but that's obviously not an excuse - just a hint).

  • Change: DBG_LEVEL_0 is excluded from default debug build flags.
  • Change: cx_backtrace() now try-locks the fd (to assure consistent output) if DBG_LEVEL_0 is disabled. If ftrylockfile() fails several times in a row, cx_backtrace() gives up. This is needed, because if the fd is already locked, this function may dead-lock the whole process/thread.
  • Change: cx_sig_handler() sets cx_entry.uptr to siginfo->si_addr, if user handler is not provided for current nesting level.
  • Fixed: (BUG::Regression) (typo!) cx_backtrace() is not printing the last cx_stack entry.
  • Cleanup: signal handlers are now using DBG0_PRINT() - this allows to easily turn off printing in sig handlers -> eliminates false positives in valgrind and random crashes due to async-signal-unsafe fprinf() (needed in experimental stage).
  • Cleanup: each call to CX_INIT() was allocating new signal stack, what was usefull in experimental stage: now only first call to CX_INIT() will allocate the stack and last call to CX_DESTROY() will release the stack and free the memory.
  • Change: cx_sigstk is now global, initialized by cx_ldini().
  • Change: valgrind Client Requests are enabled by default also in release builds.
  • Fixed: cx_connect() should initialize ent->uval.

  • manpage updated.

Posted by Tomasz Pawlak 2015-05-05

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.