octave-bug-tracker
[Top][All Lists]
Advanced

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

[Octave-bug-tracker] [bug #62459] Severe memory leak when functions are


From: Rik
Subject: [Octave-bug-tracker] [bug #62459] Severe memory leak when functions are nested
Date: Tue, 24 May 2022 12:14:53 -0400 (EDT)

Follow-up Comment #17, bug #62459 (project octave):

Backtrace generated from development sources:


(gdb) bt
#0  octave::anonymous_fcn_handle::anonymous_fcn_handle (this=0x7f5c34565050,
fcn=..., 
    local_vars=std::map with 0 elements,
stack_context=std::shared_ptr<octave::stack_frame> (empty) = {...})
    at libinterp/octave-value/ov-fcn-handle.cc:2701
#1  0x00007f5c55026d5c in octave_fcn_handle::octave_fcn_handle
(this=this@entry=0x7f5c34669040, fcn=..., 
    local_vars=std::map with 0 elements,
stack_context=std::shared_ptr<octave::stack_frame> (empty) = {...})
    at libinterp/octave-value/ov-fcn-handle.cc:2879
#2  0x00007f5c551b6852 in octave::tree_evaluator::evaluate_anon_fcn_handle
(this=0x7f5c340058b8, afh=...)
    at libinterp/parse-tree/pt-eval.cc:3421
#3  0x00007f5c551bbbeb in octave::tree_anon_fcn_handle::evaluate
(this=<optimized out>, tw=...)
    at libinterp/parse-tree/pt-fcn-handle.cc:104
#4  0x00007f5c55193481 in octave::tree_simple_assignment::evaluate
(this=0x7f5c34679130, tw=...)
    at libinterp/parse-tree/pt-assign.cc:101
#5  0x00007f5c551b48ad in octave::tree_evaluator::visit_statement
(this=0x7f5c340058b8, stmt=...)
    at libinterp/parse-tree/pt-eval.cc:3940
#6  0x00007f5c551a069c in octave::tree_statement::accept (tw=...,
this=0x7f5c346421f0)
    at libinterp/parse-tree/pt-stmt.h:124
#7  octave::tree_evaluator::visit_statement_list (this=0x7f5c340058b8,
lst=...) at libinterp/parse-tree/pt-eval.cc:4025
#8  0x00007f5c551a9e92 in octave::tree_statement_list::accept (tw=...,
this=0x7f5c34601b90)
    at libinterp/parse-tree/pt-stmt.h:201
#9  octave::tree_evaluator::execute_user_function
(this=this@entry=0x7f5c340058b8, user_function=..., 
    nargout=nargout@entry=2, xargs=...) at
libinterp/parse-tree/pt-eval.cc:3664
#10 0x00007f5c550c7523 in octave_user_function::execute (args=...,
nargout=<optimized out>, tw=..., this=0x7f5c346a0f60)
    at libinterp/octave-value/ov-usr-fcn.cc:495
#11 octave_user_function::call (this=0x7f5c346a0f60, tw=..., nargout=2,
args=...)
    at libinterp/octave-value/ov-usr-fcn.cc:488
#12 0x00007f5c551c4984 in octave::tree_index_expression::evaluate_n
(this=0x7f5c345720b0, tw=..., nargout=2)
    at libinterp/parse-tree/pt-idx.cc:408
#13 0x00007f5c55194269 in octave::tree_multi_assignment::evaluate_n
(this=0x7f5c34600ba0, tw=...)
    at libinterp/parse-tree/pt-assign.cc:201
#14 0x00007f5c55196b34 in octave::tree_multi_assignment::evaluate
(this=<optimized out>, tw=..., nargout=<optimized out>)
    at libinterp/parse-tree/pt-assign.h:156
#15 0x00007f5c551b48ad in octave::tree_evaluator::visit_statement
(this=0x7f5c340058b8, stmt=...)
    at libinterp/parse-tree/pt-eval.cc:3940
#16 0x00007f5c551a069c in octave::tree_statement::accept (tw=...,
this=0x7f5c34602da0)
    at libinterp/parse-tree/pt-stmt.h:124
#17 octave::tree_evaluator::visit_statement_list (this=0x7f5c340058b8,
lst=...) at libinterp/parse-tree/pt-eval.cc:4025
#18 0x00007f5c551a9e92 in octave::tree_statement_list::accept (tw=...,
this=0x7f5c3459e4b0)
    at libinterp/parse-tree/pt-stmt.h:201
#19 octave::tree_evaluator::execute_user_function
(this=this@entry=0x7f5c340058b8, user_function=..., 
    nargout=nargout@entry=1, xargs=...) at
libinterp/parse-tree/pt-eval.cc:3664
#20 0x00007f5c550c7523 in octave_user_function::execute (args=...,
nargout=<optimized out>, tw=..., this=0x7f5c34553e70)
    at libinterp/octave-value/ov-usr-fcn.cc:495
#21 octave_user_function::call (this=0x7f5c34553e70, tw=..., nargout=1,
args=...)
    at libinterp/octave-value/ov-usr-fcn.cc:488
#22 0x00007f5c551c4984 in octave::tree_index_expression::evaluate_n
(this=0x7f5c345b1b10, tw=..., nargout=1)
    at libinterp/parse-tree/pt-idx.cc:408
#23 0x00007f5c551c5654 in octave::tree_index_expression::evaluate
(this=<optimized out>, tw=..., nargout=<optimized out>)
    at libinterp/parse-tree/pt-idx.h:108
#24 0x00007f5c551ac57d in octave::tree_evaluator::convert_to_const_vector
(this=this@entry=0x7f5c340058b8, 
    args=args@entry=0x7f5c345b1d60) at libinterp/parse-tree/pt-eval.cc:2307
#25 0x00007f5c551c4c04 in octave::tree_index_expression::evaluate_n
(this=0x7f5c345b1d90, tw=..., nargout=1)
#26 0x00007f5c551c5654 in octave::tree_index_expression::evaluate
(this=<optimized out>, tw=..., nargout=<optimized out>)
    at libinterp/parse-tree/pt-idx.h:108
#27 0x00007f5c551ddeb4 in octave::tree_prefix_expression::evaluate
(this=0x7f5c345b2280, tw=...)
    at libinterp/parse-tree/pt-unop.cc:80
#28 0x00007f5c551a8a9c in octave::tree_evaluator::is_logically_true
(this=0x7f5c340058b8, expr=0x7f5c345b2280, 
    warn_for=0x7f5c557ca045 "if") at libinterp/parse-tree/pt-eval.cc:4539
#29 0x00007f5c551b39ba in octave::tree_evaluator::visit_if_command_list
(this=0x7f5c340058b8, lst=...)
    at libinterp/parse-tree/pt-eval.cc:3783
#30 0x00007f5c551b4825 in octave::tree_evaluator::visit_statement
(this=0x7f5c340058b8, stmt=...)
    at libinterp/parse-tree/pt-eval.cc:3915
#31 0x00007f5c551a069c in octave::tree_statement::accept (tw=...,
this=0x7f5c345b2ba0)
    at libinterp/parse-tree/pt-stmt.h:124
#32 octave::tree_evaluator::visit_statement_list (this=0x7f5c340058b8,
lst=...) at libinterp/parse-tree/pt-eval.cc:4025
#33 0x00007f5c551a9e92 in octave::tree_statement_list::accept (tw=...,
this=0x7f5c341ed320)
    at libinterp/parse-tree/pt-stmt.h:201
#34 octave::tree_evaluator::execute_user_function
(this=this@entry=0x7f5c340058b8, user_function=..., 
    nargout=nargout@entry=0, xargs=...) at
libinterp/parse-tree/pt-eval.cc:3664
#35 0x00007f5c550c7523 in octave_user_function::execute (args=...,
nargout=<optimized out>, tw=..., this=0x7f5c344ddf20)
    at libinterp/octave-value/ov-usr-fcn.cc:495
#36 octave_user_function::call (this=0x7f5c344ddf20, tw=..., nargout=0,
args=...)
    at libinterp/octave-value/ov-usr-fcn.cc:488
#37 0x00007f5c551c4984 in octave::tree_index_expression::evaluate_n
(this=0x7f5c341a64b0, tw=..., nargout=0)
    at libinterp/parse-tree/pt-idx.cc:408
#38 0x00007f5c551c5654 in octave::tree_index_expression::evaluate
(this=<optimized out>, tw=..., nargout=<optimized out>)
    at libinterp/parse-tree/pt-idx.h:108
#39 0x00007f5c551b48ad in octave::tree_evaluator::visit_statement
(this=0x7f5c340058b8, stmt=...)
    at libinterp/parse-tree/pt-eval.cc:3940
#40 0x00007f5c551a069c in octave::tree_statement::accept (tw=...,
this=0x7f5c344b2540)
    at libinterp/parse-tree/pt-stmt.h:124
#41 octave::tree_evaluator::visit_statement_list (this=0x7f5c340058b8,
lst=...) at libinterp/parse-tree/pt-eval.cc:4025
#42 0x00007f5c551a204b in octave::tree_statement_list::accept (tw=...,
this=<optimized out>)
    at libinterp/parse-tree/pt-stmt.h:201
#43 octave::tree_evaluator::eval (this=0x7f5c340058b8, stmt_list=...,
interactive=<optimized out>)
    at libinterp/parse-tree/pt-eval.cc:985
#44 0x00007f5c551b0973 in octave::tree_evaluator::repl
(this=this@entry=0x7f5c340058b8)
    at libinterp/parse-tree/pt-eval.cc:804
#45 0x00007f5c5556b9a1 in octave::interpreter::main_loop
(this=this@entry=0x7f5c34004a60)
    at libinterp/corefcn/interpreter.cc:1345
#46 0x00007f5c55574ee8 in octave::interpreter::execute
(this=this@entry=0x7f5c34004a60)
    at libinterp/corefcn/interpreter.cc:913
#47 0x00007f5c55d0d882 in octave::interpreter_qobject::execute
(this=0x555ef7d82040)
    at libgui/src/interpreter-qobject.cc:89
#48 0x00007f5c51d4a40e in QObject::event(QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
#49 0x00007f5c5280e713 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) ()
   from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007f5c55d6495b in octave::octave_qapplication::notify
(this=0x555ef7c32db0, receiver=<optimized out>, 
    ev=<optimized out>) at libgui/src/octave-qobject.cc:146
#51 0x00007f5c51d1ce2a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
()
   from /lib/x86_64-linux-gnu/libQt5Core.so.5
#52 0x00007f5c51d1ff17 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) ()




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?62459>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

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