PDA

View Full Version : MSVC++ Exception 0x80000003 In Different Language



sjackson
02-26-2018, 06:52 AM
I'm currently using Stingray 11.1. I have some software that I've helped modify. We took the application from 32 to MFC to 64 bit MFC. It's been a pretty big project, but we are having this one really strange issue. My installer works on all of our computers here, the application works and doesn't have issues; however, when our customers try to install the program, the program immediately crashes. Thinking it was a fluke issue, we asked them to install it on a few of their PCs and all of them are having this issue. We've additionally tried running our PCs in the given language as well as install an operating system in the given language to test the issue to no avail.

Scratching our heads we've tried a number of different things, but I think the real key is going to be with the Event Viewer information. We get the exception code 0x80000003 for module with path C:\Windows\System32\Kernelbase.dll and C:\Windows\System32\ntdll.dll. I have not been able to repeat these errors on our systems or development environments. Would anyone have any ideas, even to get the error to happen on our pcs so that we can move something forward?

Please let me know if there is more information that is needed from you to help out too!

Note 1

I should also mention, we put AfxMessageBox's in the program and it's crashing around if(!ProcessShellCommand(cmdInfo)). We've created a basic MFC project that includes the same command and that program runs well on the target machine.

Note 2

The systems our client is using is a Windows 10 64 bit operating system and a Windows 7 64 bit operating system.

Note 3

I'm not necessarily sure if this is a stingray issue or not, just wanted to see if the problem has been presented before and if there was a possible solution. I tried running a regular MFC on the computer and it worked fine. Is there any dependencies involved with Stingray that the local system needs to install and I might have missed?

Edit Note 4

I'm using Visual Studio 2015, but building in 2008. And the language we're going to is Spanish from English

sjackson
02-27-2018, 06:56 AM
This has definitely been the defining moment in my software engineering career thus far! So one suggestion I received from Stack Overflow was to setup a registry to get a crash dump. This has brought me really close to the heart of the problem. You excited me greatly by mentioning ProcessCommandLine()! I have been able to surround ProcessCommandLine() with an AfxMessageBox and it works up until PCL() but not after. If I race along I can get through more boxes, but no matter what it will definitely crash.

I'm not entirely sure wehat the values are on their system that are being passed at this point. I could get a AMB to report that before the crash is one thing I could do to ship that along as well.

The 32 bit version is currently still in VS6, and we haven't brought that to the newest versions just yet. That is our next task with this program; however, that version is still functioning.

Currently, our Spanish customers are our only customers using this software. All of our computers (and I mean all) have successfully deployed this application.

When we setup the environment we set it up as similar as possible to the customers hardware.

I'll attach the call stack that we're having an issue with and I'm really wondering if I'm implementing SECFrameWnd wrong.

Let me know if you need more than this for code:

In Mainfrm.h:

class CMainFrame : public SECFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
void SetPerisistance( BOOL bStore );

// Attributes
public:

In Mainfrm.cpp:

IMPLEMENT_DYNCREATE(CMainFrame, SECFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, SECFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_FILE_OPEN_COMPORT, OnFileOpenComport)
ON_UPDATE_COMMAND_UI(ID_FILE_OPEN_COMPORT, OnUpdateFileOpenComport)
ON_WM_DESTROY()
ON_WM_TIMER()
ON_COMMAND(ID_SETUP_OPTIONS, OnSetupOptions)
ON_WM_CLOSE()
ON_WM_SIZE()
ON_COMMAND(ID_FILE_DATABASE_IMPORTDATA, OnFileDatabaseImportData)
ON_COMMAND(ID_FILE_DATABASE_QUERY, OnFileDatabaseQuery)
ON_COMMAND(ID_FILE_DATABASE_MANAGE, OnFileDatabaseManage)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_MANAGE, OnUpdateFileDatabaseManage)
ON_COMMAND(ID_SETUP_DBOPTIONS, OnSetupDatabaseOptions)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_QUERY, OnUpdateFileDatabaseQuery)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_IMPORTDATA, OnUpdateFileDatabaseImportdata)
ON_COMMAND(ID_FILE_DATABASE_COMPUTECBL, OnFileDatabaseComputeCBL)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_COMPUTECBL, OnUpdateFileDatabaseComputeCBL)
ON_COMMAND(ID_VIEW_DATABASE, OnViewDatabase)
ON_UPDATE_COMMAND_UI(ID_VIEW_DATABASE, OnUpdateViewDatabase)
ON_WM_SHOWWINDOW()
ON_COMMAND(ID_FILE_COMMUNICATE_CONNECTLOCAL, OnFileCommunicateConnectLocal)
ON_UPDATE_COMMAND_UI(ID_FILE_COMMUNICATE_CONNECTLO CAL, OnUpdateFileCommunicateConnectLocal)
ON_COMMAND(ID_FILE_COMMUNICATE_CONNECTREMOTE, OnFileCommunicateConnectRemote)
ON_UPDATE_COMMAND_UI(ID_FILE_COMMUNICATE_CONNECTRE MOTE, OnUpdateFileCommunicateConnectRemote)
ON_COMMAND(ID_FILE_DATABASE_BACKUP, OnFileDatabaseBackup)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_BACKUP, OnUpdateFileDatabaseBackup)
ON_COMMAND(ID_FILE_DATABASE_RESTORE, OnFileDatabaseRestore)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_RESTORE, OnUpdateFileDatabaseRestore)
ON_COMMAND(ID_FILE_DATABASE_SELECT, OnFileDatabaseSelect)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_SELECT, OnUpdateFileDatabaseSelect)
ON_COMMAND(ID_FILE_DATABASE_REFRESH, OnFileDatabaseRefresh)
ON_UPDATE_COMMAND_UI(ID_FILE_DATABASE_REFRESH, OnUpdateFileDatabaseRefresh)
ON_COMMAND(ID_SETUP_PROXYSETUP, OnSetupProxySetup)
ON_WM_SYSCOMMAND()
ON_COMMAND(ID_SETUP_NOTIFICATION, OnSetupNotification)
ON_COMMAND(ID_TASKBAR, OnTaskbar)
ON_COMMAND(ID_SETUP_ALERT_LOG, OnSetupAlertLog)
ON_COMMAND(ID_SCHEDULE_EVENT, OnScheduleEvent)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_NEW_SITE_ADDED, OnRefreshDatabase)
ON_MESSAGE(WM_SEC_TRAYICON_NOTIFY, OnTrayIconNotify)
ON_MESSAGE(WM_LAUNCH_EXCEL_MACRO, OnLaunchExcelMacro)
ON_COMMAND(ID_POPUP_OPEN, OnPopupOpen)
ON_COMMAND(ID_POPUP_CLOSE, OnPopupClose)
ON_COMMAND(ID_POPUP_ABOUT, OnPopupAbout)
ON_MESSAGE(WM_LOG_SYSTEM_MESSAGE, OnAppendText)
ON_MESSAGE(WM_UPDATE_CALL_TIME, OnUpdateCallTime)
ON_MESSAGE(WM_PROGRESS_BAR_INIT, OnProgressBarInit)
ON_MESSAGE(WM_PROGRESS_BAR_STEP, OnProgressBarStep)
ON_MESSAGE(WM_PROGRESS_BAR_KILL, OnProgressBarKill)
ON_MESSAGE(WM_FIRMWARE_DESCR, OnFirmwareDescr)
ON_MESSAGE(WM_CALLHISTORY_DESCR, OnCallHistoryDescr)
ON_MESSAGE(WM_STATUSBAR_TEXT, OnStatusBarTextUpdate)
ON_MESSAGE(WM_TASKBAR, OnHandleTaskbar)
//ON_REGISTERED_MESSAGE(gnCloseNotifyMsg, OnCloseNotify)
END_MESSAGE_MAP()

And the stack before the crash, ot1201as is pointing to result = CFrame::WindowProc(message, wParam, lPar); line 1940 in swinfrm.cpp version 11.1

KERNELBASE.dll!DebugBreak()
MiniCPF.exe!000000013fb66eae()
MiniCPF.exe!000000013fb6731a()
MiniCPF.exe!000000013f7fcb39()
MiniCPF.exe!000000013f7fcc2b()
MiniCPF.exe!000000013f7fcdd0()
MiniCPF.exe!000000013f7e39c2()
MiniCPF.exe!000000013f7e3e8e()
mfc90.dll!CWnd::OnWndMsg(unsigned int message, unsigned __int64 wParam, __int64 lParam, __int64 * pResult) Line 2046
mfc90.dll!CWnd::WindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 1755
ot1201as.dll!000000004c0eedf8()
mfc90.dll!AfxCallWndProc(CWnd * pWnd, HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 240
mfc90.dll!AfxWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 402
mfc90.dll!AfxWndProcBase(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 441
user32.dll!UserCallWinProcCheckWow()
user32.dll!DispatchMessageWorker()
user32.dll!DialogBox2()
user32.dll!InternalDialogBox()
user32.dll!SoftModalMessageBox()
user32.dll!MessageBoxWorker()
user32.dll!MessageBoxTimeoutW()
user32.dll!MessageBoxTimeoutA()
user32.dll!MessageBoxA()
mfc90.dll!AfxCtxMessageBoxA(HWND__ * hWnd, const char * lpText, const char * lpCaption, unsigned int uType) Line 448
mfc90.dll!CWinApp::ShowAppMessageBox(CWinApp * pApp, const char * lpszPrompt, unsigned int nType, unsigned int nIDPrompt) Line 129
mfc90.dll!AfxMessageBox(const char * lpszText, unsigned int nType, unsigned int nIDHelp) Line 148
MiniCPF.exe!000000013f7eda6d()
mfc90.dll!AfxWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 37
MiniCPF.exe!000000013fb6778b()
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()