Segfault when trying to edit cylinder information

Lubomir I. Ivanov neolit123 at gmail.com
Tue Jun 13 14:43:14 PDT 2017


On 14 June 2017 at 00:30, Pedro Neves <nevesdiver at gmail.com> wrote:
> Lubomir:
>
> On 13-06-2017 21:16, Lubomir I. Ivanov wrote:
>>
>>
>> random questions:
>> - are you running from an app-image or is this your build?
>
> It happens both with my build and with the appimage

it's good that you are building yourself.

please, open the file qt-models/tankinfomodel.cpp and find the method:
QVariant TankInfoModel::data(const QModelIndex &index, int role) const

inside the method find this line:
struct tank_info_t *info = &tank_info[index.row()];

replace it with the following:
const int test_row = index.row();
fprintf(stderr, "TEST_ROW: %d\n", test_row); // include <stdio.h> if needed
struct tank_info_t *info = &tank_info[test_row];

rebuild subsurface and reproduce the crash, while looking for the
TEST_ROW output in the terminal.

something else you can do add the same fprintf() snippet for the
index.row() in this method:
bool TankInfoModel::setData(const QModelIndex &index, const QVariant
&value, int role)

if the row values are negative or larger than 99 (?) something went wrong.

>>
>> - which OS / subsurface version?
>
>
> Arch Linux / Latest from master or with 4.6.4 appimage
>
>> - does it happen if you plan a dive and insert a new cylinder?
>
> Yes.

even if you start subsurface with a blank logbook?

>
>> - can you send a file where it happens consistently + plus exact steps
>> to reproduce it?
>
>
> I've made a few more tests with other logbooks and It seems that it happens
> only with my log... There must me something wrong with it. However, I'll
> have to place it on a Dropbox as it's 42 Mb... Does anyone have any ideas
> where I should start looking?
>

that's a big logfile. the size itself might contribute to the problem
- e.g. memory corruption that we need to prevent.

lubomir
--


More information about the subsurface mailing list