I see a crash when I open a wxMathplot control in a project:
-------------------
Error occurred on Monday, November 26, 2018 at 11:57:06.
codeblocks.exe caused a Breakpoint at location 0000000069C08AD4 in module wxmsw311u_gcc_cb.dll.
AddrPC Params
0000000069C08AD4 000000006AB447F0 0000000000000000 0000000018E6CA40 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::OnAssertFailure
0000000069C07D10 0000000018A8E720 0000000000000207 000000AF00000000 wxmsw311u_gcc_cb.dll!wxOnAssert
0000000069E46146 0000000018E076B0 000000000022C9F8 000000000022C9F0 wxmsw311u_gcc_cb.dll!wxPen::GetWidth
00000000627834D1 0000000018A8E690 000000000022CB00 0000000018E076B0 wxmathplot.dll!mpFXY::Plot
0000000062789B1C 0000000018E076B0 000000000022CE30 000000000022CCA8 wxmathplot.dll!mpWindow::OnPaint
0000000069C03536 0000000000000002 0000000000000018 2C64E35A04420221 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::CallEventHandler
0000000069D65C2E 0000000000000000 000000000022CCB8 0000000000000048 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventIfMatchesId
0000000069D65D33 0000000018E076B0 0000000076DF5446 00000000000116A0 wxmsw311u_gcc_cb.dll!wxEventHashTable::HandleEvent
0000000069D664A7 000000001350A490 000007FEFECD1169 0000000000000018 wxmsw311u_gcc_cb.dll!wxEvtHandler::TryHereOnly
0000000069D6650D 000000000022CE80 0000000000000000 0000000018E077F0 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventLocally
0000000069D66568 0000000000000000 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEvent
0000000069D6825B 000000000022CE80 0000000018E076B0 0000000018E076B0 wxmsw311u_gcc_cb.dll!wxEvtHandler::SafelyProcessEvent
0000000069E78339 0000000000000000 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxWindow::HandlePaint
0000000069E79EE8 0000000000000000 000000007707B5EF 000087FA0A9C1925 wxmsw311u_gcc_cb.dll!wxWindow::MSWHandleMessage
0000000069E67EBC 000000000000FF00 0000000000060000 000000000000000F wxmsw311u_gcc_cb.dll!wxWindow::MSWWindowProc
0000000076E09BBD 0000000000000000 0000000069E708C0 0000000000000000 USER32.dll!UserCallWinProcCheckWow
0000000076E0729B 0000000000000000 000000000022D398 0000000000000000 USER32.dll!DispatchClientMessage
0000000076E067E9 00000000000000C5 0000000000000003 0000000000000000 USER32.dll!__fnDWORD
000000007707B5EF 0000000076E06E3C 0000000000000001 0000000000000000 ntdll.dll!KiUserCallbackDispatcher
0000000076E06E2A 0000000000000001 0000000000000000 0000000000000000 USER32.dll!NtUserDispatchMessage
0000000076E06E3C 00000000000F10C8 00000000000F10C8 0000000069E708C0 USER32.dll!DispatchMessageWorker
0000000076E14C0F 00000000000F10C8 000007FEFB18DEBC 0000000000000001 USER32.dll!DialogBox2
0000000076E14ED1 00000000008858A0 00000000000F10C8 000007FEFB18DEBC USER32.dll!InternalDialogBox
0000000076E14F46 000007FEFB18DEBC 000007FEFB120000 00000000008858A0 USER32.dll!DialogBoxIndirectParamAorW
0000000076E14F7C 0000000000000000 000000000022D74C 000000000022DC30 USER32.dll!DialogBoxIndirectParamW
000007FEFB251D6E 0000000000000000 000000000022D748 00000000008858A0 COMCTL32.dll!SHFusionDialogBoxIndirectParam
000007FEFB18DE29 000000001150A580 000000006A7EDC25 000000000022D8F0 COMCTL32.dll!CTaskDialog::Show
0000000069F18DE0 0000000000000000 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxRichMessageDialog::ShowModal
0000000069F61369 000000006A903680 0000000000000001 0000000019376090 wxmsw311u_gcc_cb.dll!wxGUIAppTraitsBase::ShowAssertDialog
0000000069C05EDA 000007FEFE0B1A80 000007FEFE0B1EA0 0000000000000000 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::OnUnhandledException
0000000069C086C9 000000001350A410 000000006A943E10 0000000069C087B0 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::OnAssertFailure
0000000069C0899D 000000006AB447F0 0000000000000000 00000000191E7EE0 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::OnAssertFailure
0000000069C07D10 0000000018A8E720 0000000000000207 000000AF00000000 wxmsw311u_gcc_cb.dll!wxOnAssert
0000000069E46146 0000000018E076B0 000000000022EAC8 000000000022EAC0 wxmsw311u_gcc_cb.dll!wxPen::GetWidth
00000000627834D1 0000000018A8E690 000000000022EBD0 0000000018E076B0 wxmathplot.dll!mpFXY::Plot
0000000062789B1C 0000000018E076B0 000000000022EF00 0000000000011698 wxmathplot.dll!mpWindow::OnPaint
0000000069C03536 0000000000000002 0000000000000018 2C64DE0C0452022C wxmsw311u_gcc_cb.dll!wxAppConsoleBase::CallEventHandler
0000000069D65C2E 0000000000000000 0000000000000000 0000000000000048 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventIfMatchesId
0000000069D65D33 0000000018E076B0 0000000076DFC112 00000000000116A0 wxmsw311u_gcc_cb.dll!wxEventHashTable::HandleEvent
0000000069D664A7 0000000042043428 0000000018E076B0 0000000000000018 wxmsw311u_gcc_cb.dll!wxEvtHandler::TryHereOnly
0000000069D6650D 0000000000000000 0000000052000100 0000000018E077F0 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventLocally
0000000069D66568 0000000000000000 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEvent
0000000069D6825B 000000000022EF50 0000000018E076B0 0000000018E076B0 wxmsw311u_gcc_cb.dll!wxEvtHandler::SafelyProcessEvent
0000000069E78339 0000000000000085 0000000000000001 0000000000000000 wxmsw311u_gcc_cb.dll!wxWindow::HandlePaint
0000000069E79EE8 000000000B611C60 0000000000000000 00000000003A007C wxmsw311u_gcc_cb.dll!wxWindow::MSWHandleMessage
0000000069E67EBC 000000000022F670 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxWindow::MSWWindowProc
0000000076E09BBD 0000000000000000 0000000069E708C0 0000000000000000 USER32.dll!UserCallWinProcCheckWow
0000000076E0729B 0000000000000000 000007FEF9865810 0000000077066B08 USER32.dll!DispatchClientMessage
0000000076E067E9 0000000000000201 0000000000000001 00000000003A007C USER32.dll!__fnDWORD
000000007707B5EF 0000000076E0277A 0000000000000000 0000000000000000 ntdll.dll!KiUserCallbackDispatcher
0000000076E03CAA 0000000000000000 0000000000000000 0000000000000000 USER32.dll!NtUserCallHwndLock
0000000076E0277A 000000000022F5F8 000000000000C03E 0000000000000000 USER32.dll!UpdateWindow
0000000069E72F38 00000000186ED0F0 0000000000000000 0000000000000000 wxmsw311u_gcc_cb.dll!wxWindow::Update
000000000947D130 00000000186ED0F0 00000000169AA400 000000000000FF00 wxsmithlib.dll!wxsDrawingWindow::OnFetchSequence
0000000069C03536 0000000000000000 0000000076DFF587 FFFFFFFF00030000 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::CallEventHandler
0000000069D65C2E 0000000000000001 0000000076E0484A 0000000000000000 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventIfMatchesId
0000000069D661A7 00000000186ED0F0 0000000000000000 0000000000000001 wxmsw311u_gcc_cb.dll!wxEvtHandler::SearchDynamicEventTable
0000000069D6647E 0000000077066AF8 0000000000000000 000000000000C03E wxmsw311u_gcc_cb.dll!wxEvtHandler::TryHereOnly
0000000069D6650D 0000000000000000 0000000069C2FB2E 0000000000000000 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEventLocally
0000000069D66568 0000000000000000 0000000019375E90 0000000019375E90 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessEvent
000000006A0D43DD 0000000019375ED0 0000000000000000 000000000022F9D8 wxmsw311u_gcc_cb.dll!wxScrollHelperEvtHandler::ProcessEvent
0000000069D67BA3 00000000003DA0E0 0000000000000201 0000000000000008 wxmsw311u_gcc_cb.dll!wxEvtHandler::ProcessPendingEvents
0000000069C04F1F 0000000000000000 000000000000C03E 0000000000000012 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::ProcessPendingEvents
0000000069C3DE61 000000000B87A7C0 000007FEFE0213D2 0000000000000002 wxmsw311u_gcc_cb.dll!wxEventLoopManual::ProcessEvents
0000000069C3DF3B 00000000003DA0E0 000000000B87A7C0 0000000000000008 wxmsw311u_gcc_cb.dll!wxEventLoopManual::DoRun
0000000069C3DB1A 000000000B849370 000000020000001C 000000000B6D04C0 wxmsw311u_gcc_cb.dll!wxEventLoopBase::Run
0000000069C082FA 0000000000000000 0000000041000041 000000000022FD30 wxmsw311u_gcc_cb.dll!wxAppConsoleBase::MainLoop
00000000004051AE 00000000003DA0E0 0000000069D7314B 000000000039AE10 codeblocks.exe!0x51ae
0000000069C87138 0000000000000002 000000000000003B 0000000000000000 wxmsw311u_gcc_cb.dll!wxInitialize
00000000004022E3 0000000000400000 0000000000000000 00000000007B33EC codeblocks.exe!0x22e3
00000000004013E8 0000000000000000 0000000000000000 0000000000000000 codeblocks.exe!0x13e8
00000000004014EB 0000000000000000 0000000000000000 0000000000000000 codeblocks.exe!0x14eb
0000000076F059CD 0000000000000000 0000000000000000 0000000000000000 kernel32.dll!BaseThreadInitThunk
000000007706383D 0000000000000000 0000000000000000 0000000000000000 ntdll.dll!RtlUserThreadStart
Change of behaviour in this (and at least previous) nightly build compared to 17.12 for script wizard that joins strings with integers.
This seems to work in 17.12:
filecontent.Replace(_T("ENABLE_SSL = 1"), _T("ENABLE_SSL = 0") + BoolToInt(bSSL));
Need to change to this in SVN11511:
filecontent.Replace(_T("ENABLE_SSL = 1"), _T("ENABLE_SSL = 0" + BoolToInt(bSSL)));
SVN11511 (this nightly build) gives an assertion error for the former:
C:\wxWidgets-3.1.1\include/wx/strvararg.h(445): assert "(argtype &(wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type
You can test this with the scripting console thus:
this works for my own build from the latest trunk windows 7 gcc5 wx30
Welcome to the script console!
> print(_T("Hello ") + 1)
Hello 1
But does it work with the provided night build?
You are right, it does not work. I think this is a 64 Bit issue. I have to set up a 64 bit environment to debug this...
Probably int in squirrel is defined as int64 for 64 bit builds and wxWidgets checks the argument for the print function and gets int64 (long) but expects an int32 (int)?
[edit:]
OK, we use some custom patch and "long long".. Why not "int64_t"?
#if (defined(_WIN64) || defined(_LP64))
#ifndef _SQ64
#define _SQ64
#endif
#endif
#ifdef _SQ64
#ifdef _MSC_VER
typedef __int64 SQInteger;
typedef unsigned __int64 SQUnsignedInteger;
typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
// C::B patch: For Win64 build with GCC
#elif defined(__GNUC__) && defined(_WIN64)
typedef long long SQInteger;
typedef unsigned long long SQUnsignedInteger;
typedef unsigned long long SQHash; /* should be the same size of a pointer */
// C::B patch: All other 64-bit platforms
#else
typedef long SQInteger;
typedef unsigned long SQUnsignedInteger;
typedef unsigned long SQHash; /*should be the same size of a pointer*/
#endif
typedef int SQInt32;
#else
and
SQInteger wxString_OpAdd(HSQUIRRELVM v)
{
StackHandler sa(v);
wxString result;
wxString& str1 = *SqPlus::GetInstance<wxString,false>(v, 1);
if (sa.GetType(2) == OT_INTEGER)
{
#ifdef _SQ64
result.Printf(_T("%s%ld"), str1.c_str(), sa.GetInt(2));
#else
result.Printf(_T("%s%d"), str1.c_str(), sa.GetInt(2));
#endif
}
So here the format specifier is wrong. It should be "long long" aka "%lld" or better "PRId64" from <inttypes.h>?
There is an assertion error when setting some configuration settings that has been introduced since 17.12.
Example: Menu Settings->Editor...->General settings->C/C++ Editor settings
Tick "Interpret #if, #elseif, #endif to grey out inactive preprocessor-code".
Press "OK".
Results in a wxWidgets Debug Alert box:
A debugging check in this application has failed.
../../src/common/wincmn.cpp(1531):assert ""Assert failure"" failed in RemoveEventHandler();
where has the event handler gone?
Continuing (rather than exiting app) allows normal operation to continue.
This is running "svn build rev 11511 (2018-11-19 15:21:51) gcc 5.1.0 Windows/unicode - 64 bit" running on Windows 7 Professional 64-bit with Service Pack 1. I have seen this with other workflows but did not record what they were. (I had more time today to record the workflow.)