Petrel2 and Linux

Dirk Hohndel dirk at hohndel.org
Mon Apr 18 05:05:22 PDT 2016


> On Apr 18, 2016, at 2:16 AM, Rick Walsh <rickmwalsh at gmail.com> wrote:
> 
> 
> 
> On 18 April 2016 at 18:21, Rick Walsh <rickmwalsh at gmail.com <mailto:rickmwalsh at gmail.com>> wrote:
> 
> 
> On 18 April 2016 at 11:20, Steve <stevewilliams at internode.on.net <mailto:stevewilliams at internode.on.net>> wrote:
> >
> > Registers:
> >  rax            0x0     0
> >  rbx            0x7ffeef3a09d0  140732911978960
> >  rcx            0x7ffeef3a09d0  140732911978960
> >  rdx            0x7ffeef3a09d0  140732911978960
> >
> > SegvAnalysis:
> >  Segfault happened at: 0x6a8d58 <dc_device_foreach+8>:  mov    0x30(%rax),%rax
> 
> Hmm.
> 
> dc_device_foreach is in libdivecomputer, and is a rather simple function.
> 
> I suspect that "device->vtable" is NULL.
> 
> >  #0  0x00000000006a8d58 in dc_device_foreach ()  No symbol table info
> > available.
> >  #1  0x0000000000652b02 in do_libdivecomputer_import ()  No symbol
> > table info available.
> 
> The caller is do_libdivecomputer_import -> do_device_import, but do_device_import is likely inlined.
> 
> I'm not seeing how device->vtable would be NULL, but it's either a libdivecomputer bug, or it is, as you say, memory corruption.
> 
>               Linus
> 
> 
> 
> I can also confirm an issue in windows 10 as well when using the older serial port method to download from a petrel 2.
> I don't remember the exact error message and when I tried again from command line using -vvv to capture the messages it worked successfully.
> 
> I have the same issue and backtrace using native Bluetooth download (for Petrel 2) running the current master (just verified 15 min ago with 628f83d but reported on 9 April) running Fedora 23.
> http://lists.subsurface-divelog.org/pipermail/subsurface/2016-April/025260.html <http://lists.subsurface-divelog.org/pipermail/subsurface/2016-April/025260.html>
> 
> It also fails for me with the same backtrace using the 4.5.4 Appimage, but works fine with the 4.5.2 Appimage.  However, if I build v4.5.2 myself, it fails the same way.  I dare say the cause is something that changed in Subsurface-branch of libdivecomputer between 27 October (4.5.2) and 16 March (4.5.5).
> 
> To confirm my suspicion, I built the current subsurface master (with changes to include lines to build with native Bluetooth support), and old libdivecomputer that I think would have been used for v4.5.2 Appimage (058538e Use hidapi for Suunto EON Steel on Mac).  I successfully downloaded my dives from yesterday off my Petrel 2.
> 
> I would try to bisect through the hundred-odd changes in the Subsurface-branch of libdivecomputer, but I need to get dinner ready.

My guess is that when merging the latest master of libdivecomputer into our branch I managed to break the Shearwater support.

It's annoying that our branch has diverged so far from libdivecomputer, but a recent discussion with Jef has shown that our goals for libdivecomputer have diverged about as much as our code bases, so this is a situation that is likely to get worse, not better.

Because of the way I handle bringing the changes from master into our branch, I think you'd be much better off not to bisect but to do a direct diff of just the shearwater source files between a working version and the current version. Hopefully that will make it obvious what I messed up

/D

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20160418/1a823cd9/attachment-0001.html>


More information about the subsurface mailing list