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

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

[Octave-bug-tracker] [bug #47246] segfault in findobj.m when compiling w


From: Mike Miller
Subject: [Octave-bug-tracker] [bug #47246] segfault in findobj.m when compiling with clang
Date: Wed, 24 Feb 2016 15:31:22 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 Iceweasel/44.0.2

URL:
  <http://savannah.gnu.org/bugs/?47246>

                 Summary: segfault in findobj.m when compiling with clang
                 Project: GNU Octave
            Submitted by: mtmiller
            Submitted on: Wed 24 Feb 2016 07:31:21 AM PST
                Category: Octave Function
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Crash
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: dev
        Operating System: GNU/Linux

    _______________________________________________________

Details:

When Octave is built with clang (version 3.7) on Debian, I see a segfault from
the following simple example (the findobj command is a simplified form of one
in print.m that causes the crash):


plot (1);
x = findobj (1, "-not", "type", "figure", "-not", "type", "axes", "-property",
"units");



This is the minimum set of arguments that I've come up with through trial and
error that still cause a crash. I don't know if it has to do with the number
of args or the specific combination.

Stack trace:


#0  0x00007ffff5b54ee1 in idx_vector::copy_data (this=0x7ffff4887c00
<main_arena>, data=0x1) at ../liboctave/array/idx-vector.cc:1027
#1  0x00007fffffff88d0 in ?? ()
#2  0x00007ffff710fd2e in octave_lazy_index::sort (this=<optimized out>,
dim=1, mode=DESCENDING) at ../libinterp/octave-value/ov-lazy-idx.cc:112
#3  0x00007ffff735ce77 in octave_value::sort (this=<optimized out>,
dim=<optimized out>, mode=<optimized out>) at
../libinterp/octave-value/ov.h:1308
#4  Fsort (args=..., nargout=<optimized out>) at
../libinterp/corefcn/data.cc:6480
#5  0x00007ffff7021336 in octave_builtin::do_multi_index_op (this=0x6d7220,
nargout=1, args=..., lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-builtin.cc:125
#6  0x00007ffff7021015 in octave_builtin::subsref (this=0x6d7220, type=...,
idx=..., nargout=1, lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-builtin.cc:63
#7  0x00007ffff7020f3c in octave_builtin::subsref (this=0x1, type=...,
idx=..., nargout=-1) at ../libinterp/octave-value/ov-builtin.cc:46
#8  0x00007ffff70216e8 in octave_builtin::subsref (this=0x1, type=...,
idx=...) at ../libinterp/octave-value/ov-builtin.h:64
#9  0x00007ffff71637d2 in octave_value::subsref (this=<optimized out>,
type=..., idx=..., nargout=-1) at ../libinterp/octave-value/ov.cc:1197
#10 0x00007ffff7163893 in octave_value::subsref (this=0x1, type=..., idx=...,
nargout=-1, lvalue_list=0x8cb9f0) at ../libinterp/octave-value/ov.cc:1210
#11 0x00007ffff7223ec4 in tree_index_expression::rvalue (this=0x104c6a0,
nargout=1, lvalue_list=0x0) at ../libinterp/parse-tree/pt-idx.cc:428
#12 0x00007ffff7222d3b in tree_index_expression::rvalue (this=0x1,
nargout=19755104) at ../libinterp/parse-tree/pt-idx.cc:269
#13 0x00007ffff72249fd in tree_index_expression::rvalue1 (this=0x104c6a0,
nargout=1) at ../libinterp/parse-tree/pt-idx.cc:461
#14 0x00007ffff721a559 in tree_evaluator::visit_simple_for_command
(this=0x7ffff7dd43d8 <std_evaluator>, cmd=...) at
../libinterp/parse-tree/pt-eval.cc:298
#15 0x00007ffff721c09f in tree_evaluator::visit_statement (this=0x7ffff7dd43d8
<std_evaluator>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:682
#16 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#17 0x00007ffff721a651 in tree_evaluator::visit_simple_for_command
(this=0x7ffff7dd43d8 <std_evaluator>, cmd=...) at
../libinterp/parse-tree/pt-eval.cc:327
#18 0x00007ffff721c09f in tree_evaluator::visit_statement (this=0x7ffff7dd43d8
<std_evaluator>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:682
#19 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#20 0x00007ffff721c09f in tree_evaluator::visit_statement (this=0x7ffff7dd43d8
<std_evaluator>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:682
#21 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#22 0x00007ffff721c09f in tree_evaluator::visit_statement (this=0x7ffff7dd43d8
<std_evaluator>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:682
#23 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#24 0x00007ffff715705f in octave_user_function::do_multi_index_op
(this=0x1055060, nargout=1, _args=..., lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-usr-fcn.cc:596
#25 0x00007ffff7156605 in octave_user_function::subsref (this=0x1055060,
type=..., idx=..., nargout=1, lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-usr-fcn.cc:427
#26 0x00007ffff715652c in octave_user_function::subsref (this=0x1, type=...,
idx=..., nargout=-1) at ../libinterp/octave-value/ov-usr-fcn.cc:410
#27 0x00007ffff715bf38 in octave_user_function::subsref (this=0x1, type=...,
idx=...) at ../libinterp/octave-value/ov-usr-fcn.h:358
#28 0x00007ffff71637d2 in octave_value::subsref (this=<optimized out>,
type=..., idx=..., nargout=-1) at ../libinterp/octave-value/ov.cc:1197
#29 0x00007ffff7163893 in octave_value::subsref (this=0x1, type=..., idx=...,
nargout=-1, lvalue_list=0x8cb9f0) at ../libinterp/octave-value/ov.cc:1210
#30 0x00007ffff7223ec4 in tree_index_expression::rvalue (this=0xfb61e0,
nargout=1, lvalue_list=0x0) at ../libinterp/parse-tree/pt-idx.cc:428
#31 0x00007ffff7222d3b in tree_index_expression::rvalue (this=0x1,
nargout=19755104) at ../libinterp/parse-tree/pt-idx.cc:269
#32 0x00007ffff72249fd in tree_index_expression::rvalue1 (this=0xfb61e0,
nargout=1) at ../libinterp/parse-tree/pt-idx.cc:461
#33 0x00007ffff7210800 in tree_simple_assignment::rvalue1 (this=0xf5f4e0) at
../libinterp/parse-tree/pt-assign.cc:78
#34 0x00007ffff721c12e in tree_evaluator::visit_statement (this=<optimized
out>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:708
#35 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#36 0x00007ffff721d27d in tree_evaluator::visit_unwind_protect_command
(this=0x7ffff7dd43d8 <std_evaluator>, cmd=...) at
../libinterp/parse-tree/pt-eval.cc:991
#37 0x00007ffff721c09f in tree_evaluator::visit_statement (this=0x7ffff7dd43d8
<std_evaluator>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:682
#38 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#39 0x00007ffff715705f in octave_user_function::do_multi_index_op
(this=0xf61260, nargout=1, _args=..., lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-usr-fcn.cc:596
#40 0x00007ffff7156605 in octave_user_function::subsref (this=0xf61260,
type=..., idx=..., nargout=1, lvalue_list=<optimized out>) at
../libinterp/octave-value/ov-usr-fcn.cc:427
#41 0x00007ffff715652c in octave_user_function::subsref (this=0x1, type=...,
idx=..., nargout=-1) at ../libinterp/octave-value/ov-usr-fcn.cc:410
#42 0x00007ffff715bf38 in octave_user_function::subsref (this=0x1, type=...,
idx=...) at ../libinterp/octave-value/ov-usr-fcn.h:358
#43 0x00007ffff71637d2 in octave_value::subsref (this=<optimized out>,
type=..., idx=..., nargout=-1) at ../libinterp/octave-value/ov.cc:1197
#44 0x00007ffff7163893 in octave_value::subsref (this=0x1, type=..., idx=...,
nargout=-1, lvalue_list=0x8cb9f0) at ../libinterp/octave-value/ov.cc:1210
#45 0x00007ffff7223ec4 in tree_index_expression::rvalue (this=0x8582e0,
nargout=1, lvalue_list=0x0) at ../libinterp/parse-tree/pt-idx.cc:428
#46 0x00007ffff7222d3b in tree_index_expression::rvalue (this=0x1,
nargout=19755104) at ../libinterp/parse-tree/pt-idx.cc:269
#47 0x00007ffff72249fd in tree_index_expression::rvalue1 (this=0x8582e0,
nargout=1) at ../libinterp/parse-tree/pt-idx.cc:461
#48 0x00007ffff7210800 in tree_simple_assignment::rvalue1 (this=0xe0cba0) at
../libinterp/parse-tree/pt-assign.cc:78
#49 0x00007ffff721c12e in tree_evaluator::visit_statement (this=<optimized
out>, stmt=...) at ../libinterp/parse-tree/pt-eval.cc:708
#50 0x00007ffff721c2af in tree_evaluator::visit_statement_list
(this=0x7ffff7dd43d8 <std_evaluator>, lst=...) at
../libinterp/parse-tree/pt-eval.cc:750
#51 0x00007ffff720b068 in eval_string (eval_str=..., silent=false,
address@hidden: 0, nargout=0) at
libinterp/parse-tree/oct-parse.yy:4901
#52 0x00007ffff6aaf026 in execute_eval_option_code (code=...) at
../libinterp/octave.cc:400
#53 octave_execute_interpreter () at ../libinterp/octave.cc:872
#54 0x00007ffff4509870 in __libc_start_main (main=0x400910 <main(int,
char**)>, argc=11, argv=0x7fffffffbf88, init=<optimized out>, fini=<optimized
out>, rtld_fini=<optimized out>, stack_end=0x7fffffffbf78) at
libc-start.c:291
#55 0x0000000000400839 in _start ()






    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?47246>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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