bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ]DOXY bug


From: Dr . Jürgen Sauermann
Subject: Re: ]DOXY bug
Date: Fri, 11 Mar 2022 17:00:20 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

Hi Chris,

thanks, fixed in SVN 1538.

Best Regards,
Jürgen


On 3/10/22 6:12 PM, Chris Moller wrote:
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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]