[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
]DOXY bug
From: |
Chris Moller |
Subject: |
]DOXY bug |
Date: |
Thu, 10 Mar 2022 12:12:09 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
Hi, Jürgen,
A few months ago, Russ/Russtopia sent me an edif bug that I've only
just now had time to look at:
[0] ~/Downloads/apl-1537/src >./apl
--noCONT
'libedif.so' ⎕fx 'edif'
edif
]DOXY
===================================================
SEGMENTATION FAULT
----------------------------------------
-- Stack trace at main.cc:95
----------------------------------------
0x7FA5EEFB91E2 __libc_start_main
0x4E784F main
0x691FB5 Workspace::immediate_execution(bool)
0x543B2C Command::process_line()
0x543C93 Command::process_line(UCS_string&)
0x54503D Command::do_APL_command(std::ostream&,
UCS_string&)
0x548314 Command::cmd_DOXY(std::ostream&,
UCS_string_vector&)
0x53AF2D Doxy::gen()
0x53D95B Doxy::set_call_graph_root(UserFunction const*)
0x7FA5EF6161B0
0x4E667C
========================================
====================================================
Starting apl under gdb, what's happening is that in
Doxy.cc(set_call_graph_root):772,
const UserFunction * ufun = fun->get_func_ufun();
ufun is getting set to null--it always seems to from
Function.hh:177--and then, in Doxy.cc:774,
aliases.push_back(ufun->get_name());
blows up.
I noticed that in Executable::clear_body(),
const UserFunction * ufun = fun->get_func_ufun();
is followed by
if (ufun && ufun->is_lambda())...
Patching Doxy.cc with:
773,774c773,777
< nodes.push_back(ufun);
< aliases.push_back(ufun->get_name());
---
> if (ufun)
> {
> nodes.push_back(ufun);
> aliases.push_back(ufun->get_name());
> }
seems to work make things work, but I don't know if you have any
regression tests that test the patch more thoroughly than I can.
Chris
OpenPGP_0xDA6C01938888083E.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature
- ]DOXY bug,
Chris Moller <=