In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/4d00a3198aa6950e874328ec431d15c821382cce?hp=5942644739c2d477d25e89b4a40ced7cfb0ee4e9>
- Log ----------------------------------------------------------------- commit 4d00a3198aa6950e874328ec431d15c821382cce Author: Jarkko Hietaniemi <[email protected]> Date: Sun Mar 27 11:11:18 2016 -0400 Move the zeroing back before the dladdr() call. M util.c commit 70ead873d4b864ca127d4f75aa654724264ff91b Author: Vladimir Timofeev <[email protected]> Date: Fri Mar 25 08:41:25 2016 -0400 [perl #127773: Assertion failure in perl built with Dusecbacktrace] M util.c ----------------------------------------------------------------------- Summary of changes: util.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/util.c b/util.c index c1c854f..9ad40c1 100644 --- a/util.c +++ b/util.c @@ -6252,14 +6252,14 @@ static void atos_symbolize(atos_context* ctx, char out[1024]; UV cnt = fread(out, 1, sizeof(out), fp); if (cnt < sizeof(out)) { - const char* p = atos_parse(out + cnt, out, + const char* p = atos_parse(out + cnt - 1, out, source_name_size, source_line); if (p) { Newx(*source_name, - *source_name_size + 1, char); + *source_name_size, char); Copy(p, *source_name, - *source_name_size + 1, char); + *source_name_size, char); } } pclose(fp); @@ -6384,14 +6384,15 @@ Perl_get_c_backtrace(pTHX_ int depth, int skip) for (i = skip; i < try_depth; i++) { Dl_info* dl_info = &dl_infos[i]; - total_bytes += sizeof(Perl_c_backtrace_frame); - + object_name_sizes[i] = 0; source_names[i] = NULL; source_name_sizes[i] = 0; source_lines[i] = 0; /* Yes, zero from dladdr() is failure. */ if (dladdr(raw_frames[i], dl_info)) { + total_bytes += sizeof(Perl_c_backtrace_frame); + object_name_sizes[i] = dl_info->dli_fname ? strlen(dl_info->dli_fname) : 0; symbol_name_sizes[i] = -- Perl5 Master Repository
