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:
> 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?
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.
More information about the subsurface