assert fail message should include a stack trace?
Bug #541223 reported by
Jeff Hill
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
It would be very useful if a stack trace was included in assert fail messages. This is easy on vxWorks, and may also be possible without unreasonable effort on Windows and Linux. On vxWorks we provide instructions to the user on how to obtain a stack trace, but this rarely results in a stack trace being sent with the bug report, so perhaps it would be best to just go ahead and dump a stack trace when the assert message is generated.
Original Mantis Bug: mantis-166
http://
Related branches
lp:~strauman/epics-base/stacktrace-1
- Andrew Johnson: Approve
- mdavidsaver: Approve
-
Diff: 1524 lines (+1356/-3)21 files modifiedconfigure/os/CONFIG.Common.linuxCommon (+3/-1)
configure/os/CONFIG.win32-x86.win32-x86 (+2/-2)
src/libCom/misc/cantProceed.c (+4/-0)
src/libCom/osi/Makefile (+6/-0)
src/libCom/osi/epicsStackTrace.c (+124/-0)
src/libCom/osi/epicsStackTrace.h (+43/-0)
src/libCom/osi/epicsStackTracePvt.h (+48/-0)
src/libCom/osi/os/Darwin/osdBackTrace.cpp (+10/-0)
src/libCom/osi/os/Darwin/osdFindAddr.cpp (+43/-0)
src/libCom/osi/os/Linux/osdBackTrace.cpp (+10/-0)
src/libCom/osi/os/Linux/osdFindAddr.cpp (+10/-0)
src/libCom/osi/os/WIN32/osdBackTrace.cpp (+23/-0)
src/libCom/osi/os/default/osdAssert.c (+4/-0)
src/libCom/osi/os/default/osdBackTrace.cpp (+16/-0)
src/libCom/osi/os/default/osdFindAddr.cpp (+25/-0)
src/libCom/osi/os/posix/osdElfFindAddr.cpp (+664/-0)
src/libCom/osi/os/posix/osdExecinfoBackTrace.cpp (+18/-0)
src/libCom/osi/os/solaris/osdBackTrace.cpp (+46/-0)
src/libCom/osi/os/solaris/osdFindAddr.cpp (+10/-0)
src/libCom/test/Makefile (+5/-0)
src/libCom/test/epicsStackTraceTest.c (+242/-0)
Changed in epics-base: | |
milestone: | 3.16.branch → 3.15.branch |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Both epicsAssert() and cantProceed() now print a stack trace.