Hi again,

further update - looks like the C function nhash_() is receiving args by 
value but is called from Fortran which passes by reference.

I will see if I can sort it out.

73
Bill
G4WJS.

On 10/06/2015 14:49, Bill Somerville wrote:
> Hi Steve & probably Joe,
>
> I have a change to deal with this, I think. But when I tried to test it
> out by sending a WSPR Tx from a local instance of WSJT-X using the call
> PJ4/K1ABC and grid FK52ud the first Tx goes Ok but WSJT-X crashes with
> the following stack trace just as it is about to transmit the 2nd message:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x004979df in nhash_ (key=0x28c820, length=2642428, initval=6623596)
>       at C:\Users\bill\src\wsjt\lib\wsprd\nhash.c:224
> 224           b += k[1];
> (gdb) p k
> $1 = (const uint32_t *) 0x293ffc
> (gdb) bt
> #0  0x004979df in nhash_ (key=0x28c820, length=2642428, initval=6623596)
>       at C:\Users\bill\src\wsjt\lib\wsprd\nhash.c:224
> #1  0x0048c8d8 in hash (
>       string=<error reading variable: Cannot access memory at address
> 0x28ca14>, l
> en=9, ihash=0, _string=12) at C:\Users\bill\src\wsjt\lib\hash.f90:10
> #2  0x00487be9 in wqencode (msg=..., ntype=2673464, data0=..., _msg=22)
>       at C:\Users\bill\src\wsjt\lib\wqencode.f90:48
> #3  0x0047606f in genwspr (message=..., msgsent=..., itone=..., _message=22,
>       _msgsent=22) at C:\Users\bill\src\wsjt\lib\genwspr.f90:21
> #4  0x00436c69 in MainWindow::guiUpdate (this=0x28f8c0)
>       at C:\Users\bill\src\wsjt\mainwindow.cpp:1987
> #5  0x005d8425 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
> QtPrivate::Li
> st<>, void, void (MainWindow::*)()>::call(void (MainWindow::*)(),
> MainWindow*, v
> oid**) (f=
>       (void (MainWindow::*)(MainWindow * const)) 0x4353f6
> <MainWindow::guiUpdate()
>   >, o=0x28f8c0, arg=0x28cf9c)
>       at C:/Tools/Qt/5.2.1/mingw48_32/include/QtCore/qobjectdefs_impl.h:508
> #6  0x005dbe76 in QtPrivate::FunctionPointer<void
> (MainWindow::*)()>::call<QtPri
> vate::List<>, void>(void (MainWindow::*)(), MainWindow*, void**) (f=
>       (void (MainWindow::*)(MainWindow * const)) 0x4353f6
> <MainWindow::guiUpdate()
>   >, o=0x28f8c0, arg=0x28cf9c)
>       at C:/Tools/Qt/5.2.1/mingw48_32/include/QtCore/qobjectdefs_impl.h:527
> #7  0x005d9bd3 in QtPrivate::QSlotObject<void (MainWindow::*)(),
> QtPrivate::List
> <>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (
>       which=1, this_=0x18534150, r=0x28f8c0, a=0x28cf9c, ret=0x0)
>       at C:/Tools/Qt/5.2.1/mingw48_32/include/QtCore/qobject_impl.h:149
> #8  0x6ba35685 in QtPrivate::QSlotObjectBase::call (this=0x18534150,
>       r=0x28f8c0, a=0x28cf9c)
>       at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
> #9  0x6b9467c7 in QMetaObject::activate (sender=0x28fbb0, signalOffset=3,
>       local_signal_index=0, argv=warning: (Internal error: pc 0x0 in read
> in psymt
> ab, but not in symtab.)
>
> 0x0) at kernel\qobject.cpp:3561
> #10 0x6b946232 in QMetaObject::activate (sender=0x28fbb0, m=0x6bbc2f44,
>       local_signal_index=0, argv=warning: (Internal error: pc 0x0 in read
> in psymt
> ab, but not in symtab.)
>
> 0x0) at kernel\qobject.cpp:3444
> #11 0x6b99e248 in QTimer::timeout (this=0x28fbb0)
>       at .moc\debug\moc_qtimer.cpp:189
> #12 0x6b94a19c in QTimer::timerEvent (this=0x28fbb0, e=0x28d6dc)
>       at kernel\qtimer.cpp:255
> #13 0x6b940daa in QObject::event (this=0x28fbb0, e=0x28d6dc)
>       at kernel\qobject.cpp:1128
> #14 0x0c5adeb1 in QApplicationPrivate::notify_helper (this=0x15c4c1e8,
>       receiver=0x28fbb0, e=0x28d6dc) at kernel\qapplication.cpp:3482
> #15 0x0c5ab7cd in QApplication::notify (this=0x28fd34, receiver=0x28fbb0,
>       e=0x28d6dc) at kernel\qapplication.cpp:2903
> #16 0x6b91b91c in QCoreApplication::notifyInternal (this=0x28fd34,
>       receiver=0x28fbb0, event=0x28d6dc) at kernel\qcoreapplication.cpp:881
> #17 0x6b9bf427 in QCoreApplication::sendEvent (receiver=0x28fbb0,
>       event=0x28d6dc)
>       at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:232
> #18 0x6b965747 in QEventDispatcherWin32Private::sendTimerEvent (
>       this=0x15b199d8, timerId=15) at kernel\qeventdispatcher_win.cpp:585
> #19 0x6b965012 in qt_internal_proc (hwnd=0x533656 <hiqsdr_set_freq+93>,
>       message=275, wp=15, lp=0) at kernel\qeventdispatcher_win.cpp:426
> #20 0x74d48e71 in USER32!CallWindowProcA ()
>      from C:\windows\SysWOW64\user32.dll
> #21 0x74d490d1 in USER32!CallWindowProcA ()
>      from C:\windows\SysWOW64\user32.dll
> #22 0x74d4a66f in USER32!GetOpenClipboardWindow ()
>      from C:\windows\SysWOW64\user32.dll
> #23 0x74d4a6e0 in USER32!DlgDirListComboBoxW ()
>      from C:\windows\SysWOW64\user32.dll
> #24 0x6b9662cb in QEventDispatcherWin32::processEvents (this=0x15c4bea8,
>       flags=...) at kernel\qeventdispatcher_win.cpp:756
> #25 0x6285dbc6 in QWindowsGuiEventDispatcher::processEvents
> (this=0x15c4bea8,
>       flags=...) at qwindowsguieventdispatcher.cpp:80
> #26 0x6b919a20 in QEventLoop::processEvents (this=0x28f820, flags=...)
>       at kernel\qeventloop.cpp:136
> #27 0x6b919cbb in QEventLoop::exec (this=0x28f820, flags=...)
>       at kernel\qeventloop.cpp:212
> #28 0x6b91bf56 in QCoreApplication::exec ()
>       at kernel\qcoreapplication.cpp:1134
> #29 0x034bb05a in QGuiApplication::exec () at
> kernel\qguiapplication.cpp:1332
> #30 0x0c5ab187 in QApplication::exec () at kernel\qapplication.cpp:2707
> #31 0x00468d8b in _fu111___ZSt4cerr () at
> C:\Users\bill\src\wsjt\main.cpp:200
>
> A quick analysis seems to show something going wrong with the generation
> of the hashcode for the 2nd message to be sent. Before I get to deep
> into this perhaps one of you, who knows the message generation code, can
> say quickly why this is failing.
>
> 73
> Bill
> G4WJS.
>
> On 10/06/2015 13:56, Bill Somerville wrote:
>> On 10/06/2015 13:19, Steven Franke wrote:
>>> Bill,
>> Hi Steve,
>>> I noticed that callsigns retrieved from the hashtable are not being 
>>> displayed in the spots window. The callsign is visible in ALL_WSPR.TXT, 
>>> with the customary <callsign> notation, however the callsign field is blank 
>>> in the spots window.
>> That is probably due to the decodes window processing text as Qt rich
>> text which is a subset of HTML 4. The < and > characters will need escaping.
>>
>> I will commit something shortly.
>>> Steve k9an
>> 73
>> Bill
>> G4WJS.
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> wsjt-devel mailing list
>> wsjt-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/wsjt-devel
>
> ------------------------------------------------------------------------------
> _______________________________________________
> wsjt-devel mailing list
> wsjt-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wsjt-devel


------------------------------------------------------------------------------
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to