[Top][All Lists]

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

[Octave-bug-tracker] [bug #50466] makehgtform function missing

From: Gary E. Deschaines
Subject: [Octave-bug-tracker] [bug #50466] makehgtform function missing
Date: Tue, 25 Dec 2018 02:44:30 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0

Follow-up Comment #29, bug #50466 (project octave):


Not meaning to continue kicking a soon to be dead hgtransform.m horse, but I
felt obligated to determine the cause of the 'invalid value for array property
"xlim"' error encountered as described in comment #25.

Casual experimentation lead to the fact that hgtransform is not involved with
the error caused by what may be a bug in using set(hx, 'parent', hg). This
observation was substantiated through a debugging session with octave-4.4.1
source code using the attached axes_xlim_error.m script and gdb debugging
command file .gdbcmds_axes_xlim_error as demonstrated below.

Terminal Window 1

~/Work/Octave/rvctools$ /opt/octave/bin/octave --no-gui axes_xlim_error.m

hax = -1.3944
hax xlim     = 
  -2   2
hax xlimmode = 
hg = -6.3352
hg xlim = 
hx = -7.7682

*** Press 'enter' key after 'Breakpoint 1 at 0x____________:
    axes::update_axis_limits. (2 locations)'
    appears in Terminal Window 2 when the debugger starts 
    processing the specified command file.

Terminal Window 2

~/Temp/octave-4.4.1$ ps a | grep octave

  409 pts/18   Sl+    0:01
/opt/octave/libexec/octave/4.4.1/exec/x86_64-pc-linux-gnu/octave-gui --no-gui
  454 pts/2    S+     0:00 grep --color=auto octave

~/Temp/octave-4.4.1$ sudo gdb -x .gdbcmds_axes_xlim_error -p 409


A sample gdb debugging session log is provided as attached file

The error is produced by the array_property::do_set() method on line 1454 of
libinterp/corefcn/graphics.h for a false value returned by the
array_property::validate() method on line 1418 of
libinterp/corefcn/graphics.cc. It appears the validate() method is expecting a
{1,2} or {2,1} vector but has been passed a {4,1} vector. The {4,1} vector is
instantiated as a Matrix in the axes::update_axis_limits() method on line 7781
of libinterp/corefcn/graphics.cc.

Note: this error does not occur when the hggroup 'parent' property/value pair
is passed as arguments in the called line() function as demonstrated by
running axes_xlim_error.m with NO_ERROR set to true. This is due to the
axes::update_axis_limits() method on line 8013 of
libinterp/corefcn/graphics.cc being invoked instead of that on line 7781.


(file #45735, file #45736, file #45737)

Additional Item Attachment:

File name: axes_xlim_error.m              Size:0 KB
File name: axes_xlim_error_gdb_log.txt    Size:9 KB
File name: .gdbcmds_axes_xlim_error       Size:0 KB


Reply to this item at:


  Message sent via Savannah

reply via email to

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