I am having problems using vector
charts (ENC and M93) on armhf on a raspberry pi.
This is a follow-on from an earlier post
http://www.cruisersforum.com/forums/...ml#post1000186
I have recompiled against 3.1.802 but the previous symptoms (detailed in the above post) remain, i.e. the app crashes when opening vector
charts. The default chart is fine (the new look is great) as is a set of raster charts.
Running
opencpn with gdb gives the following after adding a chart directory to a clean
installation:
loading
ENC charts:
(gdb) run
Starting program: /usr/local/bin/opencpn
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Program received signal SIGBUS, Bus error.
0x002a8eac in s57chart::CreateSENCRecord (this=0xc36c00, pFeature=0x650db0, fpOut=0x672f08,
mode=1, poReader=0xe7d730) at /home/pi/OpenCPN/src/s57chart.cpp:4978
4978 *pdf++ = easting;
(gdb) bt
#0 0x002a8eac in s57chart::CreateSENCRecord (this=0xc36c00, pFeature=0x650db0,
fpOut=0x672f08, mode=1, poReader=0xe7d730) at /home/pi/OpenCPN/src/s57chart.cpp:4978
#1 0x002a57e8 in s57chart::BuildSENCFile (this=0xc36c00, FullPath000=..., SENCFileName=...)
at /home/pi/OpenCPN/src/s57chart.cpp:3998
#2 0x0029fd88 in s57chart::FindOrCreateSenc (this=0xc36c00, name=...)
at /home/pi/OpenCPN/src/s57chart.cpp:2629
#3 0x0029f260 in s57chart::Init (this=0xc36c00, name=..., flags=FULL_INIT)
at /home/pi/OpenCPN/src/s57chart.cpp:2451
#4 0x000fd930 in ChartDB::OpenChartUsingCache (this=0xc793b8, dbindex=16, init_flag=FULL_INIT)
at /home/pi/OpenCPN/src/chartdb.cpp:1019
#5 0x000fca84 in ChartDB::OpenChartFromStack (this=0xc793b8, pStack=0x75a6c0, StackEntry=0,
init_flag=FULL_INIT) at /home/pi/OpenCPN/src/chartdb.cpp:690
#6 0x000fe078 in ChartDB::OpenStackChartConditional (this=0xc793b8, ps=0x75a6c0,
index_start=0, bSearchDir=false, New_Type=CHART_TYPE_DONTCARE,
New_Family_Fallback=CHART_FAMILY_RASTER) at /home/pi/OpenCPN/src/chartdb.cpp:1177
#7 0x000e1858 in MyFrame:
oChartUpdate (this=0xd37c80)
at /home/pi/OpenCPN/src/chart1.cpp:5829
#8 0x000d8624 in MyFrame::ClearbFollow (this=0xd37c80) at /home/pi/OpenCPN/src/chart1.cpp:3688
#9 0x000cec94 in MyApp::OnInit (this=0x4313b0) at /home/pi/OpenCPN/src/chart1.cpp:1794
#10 0x000eb498 in wxAppConsole::CallOnInit (this=0x4313b0) at /usr/include/wx-2.8/wx/app.h:76
#11 0x400c3690 in wxEntry(int&, wchar_t**) ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#12 0x000cb668 in main (argc=1, argv=0xbefffd24) at /home/pi/OpenCPN/src/chart1.cpp:723
(gdb)
loading CM93 charts:
(gdb) run
Starting program: /usr/local/bin/opencpn
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Program received signal SIGBUS, Bus error.
0x002be840 in cm93chart::CreateS57Obj (this=0x158df20, cell_index=3901020, iobject=1,
subcell=48, pobject=0x17fd018, pDict=0xba3a70, xgeom=0x178dd70, ref_lat=0, ref_lon=0,
scale=3000000) at /home/pi/OpenCPN/src/cm93.cpp:3338
3338 *pAVR = *pf;
(gdb) bt
#0 0x002be840 in cm93chart::CreateS57Obj (this=0x158df20, cell_index=3901020, iobject=1,
subcell=48, pobject=0x17fd018, pDict=0xba3a70, xgeom=0x178dd70, ref_lat=0, ref_lon=0,
scale=3000000) at /home/pi/OpenCPN/src/cm93.cpp:3338
#1 0x002bb29c in cm93chart::CreateObjChain (this=0x158df20, cell_index=3901020, subcell=48)
at /home/pi/OpenCPN/src/cm93.cpp:2331
#2 0x002baa4c in cm93chart::SetVPParms (this=0x158df20, vpt=...)
at /home/pi/OpenCPN/src/cm93.cpp:2160
#3 0x002c38f0 in cm93compchart::PrepareChartScale (this=0x16cd380, vpt=..., cmscale=1)
at /home/pi/OpenCPN/src/cm93.cpp:4840
#4 0x002c7ee0 in cm93compchart::AdjustVP (this=0x16cd380, vp_last=..., vp_proposed=...)
at /home/pi/OpenCPN/src/cm93.cpp:6083
#5 0x0012ed08 in ChartCanvas::SetViewPoint (this=0xcfb200, lat=57.191999473727378,
lon=-2.8123173608082683, scale_ppm=0.0011999999999999999, skew=0, rotation=0,
b_adjust=true) at /home/pi/OpenCPN/src/chcanv.cpp:4782
#6 0x0012e7dc in ChartCanvas::LoadVP (this=0xcfb200, vp=..., b_adjust=true)
at /home/pi/OpenCPN/src/chcanv.cpp:4702
#7 0x0012e650 in ChartCanvas::ReloadVP (this=0xcfb200, b_adjust=true)
at /home/pi/OpenCPN/src/chcanv.cpp:4684
#8 0x000da6d8 in MyFrame::ChartsRefresh (this=0xc12dc8, dbi_hint=-1, vp=..., b_purge=true)
at /home/pi/OpenCPN/src/chart1.cpp:4162
#9 0x000d91cc in MyFrame:
oOptionsDialog (this=0xc12dc8)
at /home/pi/OpenCPN/src/chart1.cpp:3884
#10 0x000d6a7c in MyFrame::OnToolLeftClick (this=0xc12dc8, event=...)
at /home/pi/OpenCPN/src/chart1.cpp:3296
#11 0x40095314 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#12 0x4010f954 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEn tryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#13 0x4010fab4 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#14 0x4010fe70 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#15 0x4010fde8 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#16 0x403825dc in wxWindowBase::TryParent(wxEvent&) ()
from /usr/lib/arm-linux-gnueabihf/libwx_gtk2u_core-2.8.so.0
#17 0x4010fe04 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#18 0x4010f894 in wxEvtHandler::ProcessPendingEvents() ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#19 0x40095520 in wxAppConsole::ProcessPendingEvents() ()
from /usr/lib/arm-linux-gnueabihf/libwx_baseu-2.8.so.0
#20 0x40318870 in wxAppBase::ProcessIdle() ()
from /usr/lib/arm-linux-gnueabihf/libwx_gtk2u_core-2.8.so.0
#21 0x402973e0 in ?? () from /usr/lib/arm-linux-gnueabihf/libwx_gtk2u_core-2.8.so.0
#22 0x402973e0 in ?? () from /usr/lib/arm-linux-gnueabihf/libwx_gtk2u_core-2.8.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)