Yes, that’s it. I think that this is my fault, though I’m not sure how it came about.
If you look at nhash.c back in wsprx: uint32_t nhash_( const void *key, int *length0, uint32_t *initval0) compared to the current nhash.c in wsjtx: uint32_t nhash_( const void *key, size_t length, uint32_t initval) I am using nhash.c in wsprd.c, so if you change it to pass all arguments by reference, then wsprd_utils.c and maybe wsprd.c will need to be fixed up... Steve k9an > On Jun 10, 2015, at 9:03 AM, Bill Somerville <g4...@classdesign.com> wrote: > > 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
------------------------------------------------------------------------------
_______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel