Hi Patryk,

are you also using the latest SVN version of Terminal or are you using latest release?
Table is used in Terminal's Preferences.

Your stack trace involves no Terminal code, but apparently a view is getting something negative (I get that too, but get no crash) and this could confuse NSTable.
A first guess for me would be that _rowYOrigin[i] is invalid

Maybe Fred can help us. Could you print the stactrace to see where it is called from Terminal?

please print out i and _numberOfRows just to check the basic things.

perhaps something went astray.


Riccardo

Patryk Laurent via Gnustep-dev wrote:
Here is the stacktrace from the segfault when launching Terminal 0.9.9.  It seems to originate from within GSTable.m. (Again, using latest from the repo.)

It looks like the negative width and height which are somehow being obtained are causing a bad index into memory...?

Best,
Patryk


Terminal-0.9.9/Terminal.app$ lldb-6.0 ./Terminal

(lldb) target create "./Terminal"

Current executable set to './Terminal' (aarch64).

(lldb) run

Process 5659 launched: './Terminal' (aarch64)

Process 5659 stopped and restarted: thread 1 received signal: SIGCHLD

Process 5659 stopped and restarted: thread 1 received signal: SIGCHLD

2019-08-27 03:02:44.935 Terminal[5659:5659] File NSView.m: 1183. In -[NSView setFrame:] given negative width

2019-08-27 03:02:44.940 Terminal[5659:5659] File NSView.m: 1188. In -[NSView setFrame:] given negative height

2019-08-27 03:02:44.942 Terminal[5659:5659] NSFont <NSFont: 0xe72b88> DejaVuSansMono 12.000 0.000 0.000 12.000 0.000 0.000 S 6 info <CairoFontInfo: 0xe72c18> size 12 {x = 0; y = -9; width = 8; height = 9} 1

Process 5659 stopped

* thread #1, name = 'Terminal', stop reason = signal SIGSEGV: invalid address (fault address: 0xf30000)

    frame #0: 0x0000007fb7bb2bd8 libgnustep-gui.so.0.27`-[GSTable(self=0x0000000000e8bd48, _cmd="\x96B", newFrameSize=(width = 586.99999999999989, height = 351)) _updateForNewFrameSize:] at GSTable.m:1080

   1077dimensionIncrement = dimensionIncrement / _expandingRowNumber;

   1078for (i = 0; i < _numberOfRows; i++)

   1079  {

-> 1080    _rowYOrigin[i] += originShift;

   1081    if (_expandRow[i])

   1082{

   1083_rowDimension[i] += dimensionIncrement;

(lldb)





_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to