Merged
Conversation
Changes:
- _ast_assertfail(): Use glibc's backtrace() and backtrace_symbols() to
produce a backtrace after a failed assertion.
- Compile with -rdynamic or -Wl,-export-dynamic when available.
Glibc's backtrace_symbols() function will fail to print readable
function names if this is not included in the linker's flags,
resulting in significantly worse backtraces.
(This flag should've been part of ksh93#357,
but it appears to have been forgotten about/omitted accidentally.)
- nv_endsubscript(): Add an error message prior to calling assert
to hopefully make the intermittent crashing bug easier to trace
(I can't trigger it manually at all, so hopefully the next CI
crash produces more useful output.)
- ci.yml: Compile CI builds with CCFLAGS=-Og and LDFLAGS=-g (required
alongside -rdynamic for useful backtraces).
McDutchie
reviewed
Mar 31, 2026
McDutchie
reviewed
Mar 31, 2026
McDutchie
pushed a commit
that referenced
this pull request
Apr 1, 2026
Changes:
- _ast_assertfail(): Use glibc's backtrace() and
backtrace_symbols() to produce a backtrace after a failed
assertion.
- Compile with -rdynamic or -Wl,-export-dynamic when available.
Glibc's backtrace_symbols() function will fail to print
readable function names if this is not included in the linker's
flags, resulting in significantly worse backtraces. (This flag
should've been part of #357,
but it appears to have been forgotten about/omitted
accidentally.)
- nv_endsubscript(): Add an error message prior to calling assert
to hopefully make the intermittent crashing bug easier to trace
(I can't trigger it manually at all, so hopefully the next CI
crash produces more useful output.)
- ci.yml: Compile CI builds with CCFLAGS=-Og and LDFLAGS=-g
(required alongside -rdynamic for useful backtraces).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes:
_ast_assertfail(): Use glibc'sbacktrace()andbacktrace_symbols()to produce a backtrace after a failed assertion.-rdynamicor-Wl,-export-dynamicwhen available. Glibc'sbacktrace_symbolsfunction will fail to print readable function names if this is not included in the linker's flags, resulting in significantly worse backtraces. (This flag should've been part of Build dynamic libraries #357; see also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=821806.)nv_endsubscript(): Add an error message prior to callingassertto hopefully make the intermittent crashing bug easier to trace. (I can't trigger it manually at all, so hopefully the next CI crash produces more useful output.)CCFLAGS=-Og(-gis required alongside-rdynamicfor useful backtraces).