Re: Crash in GetColumn API of CListCtrl during Printing to Printer
Below is the stack trace:
// special version of CThreadSlotData::GetData that only works with
// thread local storage (and not process local storage)
// this version is inlined and simplified for speed
inline void* CThreadSlotData::GetThreadValue(int nSlot)
{
EnterCriticalSection(&m_sect);
ASSERT(nSlot != 0 && nSlot < m_nMax);
ASSERT(m_pSlotData != NULL);
ASSERT(m_pSlotData[nSlot].dwFlags & SLOT_USED);
ASSERT(m_tlsIndex != (DWORD)-1);
if( nSlot <= 0 || nSlot >= m_nMax ) // check for retail builds.
{
LeaveCriticalSection(&m_sect);
return NULL;
}
CThreadData* pData = (CThreadData*)TlsGetValue(m_tlsIndex);
if (pData == NULL || nSlot >= pData->nCount)
{
LeaveCriticalSection(&m_sect);
return NULL;
}
void* pRetVal = pData->pData[nSlot];
LeaveCriticalSection(&m_sect);
return pRetVal;
}
kernel32.dll!7c809e2c()
[Frames below may be incorrect and/or missing, no
symbols loaded for kernel32.dll]
winspool.drv!73001362()
winspool.drv!73001362()
comctl32.dll!773eade5()
winspool.drv!73001362()
winspool.drv!73001362()
user32.dll!7e41882a()
nvoglnt.dll!6974466f()
comctl32.dll!773eb171()
user32.dll!7e428eab()
comctl32.dll!7743afbf()
comctl32.dll!7743c31f()
user32.dll!7e458763()
ntdll.dll!7c90e473()
comctl32.dll!7741e343()
mfc80.dll!CThreadSlotData::GetThreadValue(int
nSlot=0) Line 265 C++
mfc80.dll!CThreadLocalObject::GetData(CNoTrackObject *
(void)* pfnCreateObject=0x781ff99d) Line 430 + 0x5 bytes C++
mfc80.dll!AfxGetModuleThreadState() Line 468 + 0x16
bytes C++
mfc80.dll!afxMapHWND(int bCreate=-1) Line 298 + 0x5
bytes C++
mfc80.dll!___sse2_available_init() + 0x1f1b
bytes C++
0000036d()
mfc80.dll!CWnd::WindowProc(unsigned int message=877,
unsigned int wParam=4, long lParam=0) Line 1742 + 0x13 bytes
C++
user32.dll!7e418816()
user32.dll!7e41882a()
user32.dll!7e41882a()
user32.dll!7e42a013()
user32.dll!7e42a998()
mfc80.dll!CWnd::DefWindowProcA(unsigned int nMsg=553,
unsigned int wParam=25803220, long lParam=25803224) Line 1035 + 0x13
bytes C++
mfc80.dll!CWnd::WindowProc(unsigned int
message=962584, unsigned int wParam=962584, long lParam=962632) Line
1742 + 0x13 bytes C++
00000030()
ntdll.dll!7c91797c()
mfc80.dll!CThreadLocalObject::GetData(CNoTrackObject *
(void)* pfnCreateObject=0x781ff99d) Line 430 + 0x5 bytes C++
mfc80.dll!AfxGetModuleThreadState() Line 468 + 0x16
bytes C++
mfc80.dll!AfxCallWndProc(CWnd * pWnd=0x00000000,
HWND__ * hWnd=0x001408a4, unsigned int nMsg=553, unsigned int
wParam=2147344384, long lParam=25802880) Line 257 + 0x5
bytes C++
mfc80.dll!AfxWndProc(HWND__ * hWnd=0x00000000,
unsigned int nMsg=277666050, unsigned int wParam=25802948, long
lParam 15361566) Line 388 + 0x10 bytes C++
kernel32.dll!7c80a72d()
mfc80.dll!AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2()
Line 66 C++
mfc80.dll!AfxWndProcBase(HWND__ * hWnd=, unsigned int
nMsg=, unsigned int wParam=, long lParam=) Line 411 + 0x26
bytes C++
user32.dll!7e458753()
user32.dll!7e458763()
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e41885a()
user32.dll!7e41882a()
nvoglnt.dll!6974466f()
user32.dll!7e41882a()
user32.dll!7e428ea0()
user32.dll!7e428eab()
user32.dll!7e428eab()
user32.dll!7e458753()
user32.dll!7e458763()
mfc80.dll!CThreadSlotData::GetThreadValue(int
nSlot=0) Line 265 C++
mfc80.dll!CThreadSlotData::GetThreadValue(int
nSlot=0) Line 265 C++
mfc80.dll!CThreadSlotData::GetThreadValue(int
nSlot=0) Line 265 C++
mfc80.dll!CThreadLocalObject::GetData(CNoTrackObject *
(void)* pfnCreateObject=0x7e429165) Line 430 + 0x5 bytes C++
user32.dll!7e429135()
user32.dll!7e429165()
mfc80.dll!CWnd::AttachControlSite(CHandleMap *
pMap=0x0400c260) Line 445 C++
mfc80.dll!CWnd::FromHandle(HWND__ * hWnd=0x00000001)
Line 311 C++
MSCTF.dll!74755f00()
MSCTF.dll!7473f87f()
mfc80.dll!CThreadLocalObject::GetData(CNoTrackObject *
(void)* pfnCreateObject=0x781ff99d) Line 430 + 0x5 bytes C++
mfc80.dll!AfxGetModuleThreadState() Line 468 + 0x16
bytes C++
user32.dll!7e419c2e()
user32.dll!7e419c17()
user32.dll!7e419d4d()
user32.dll!7e419d60()
MSCTF.dll!7475577a()
MSCTF.dll!74755d2a()
user32.dll!7e4277b0()
user32.dll!7e4277f7()
ntdll.dll!7c90da2a()
kernel32.dll!7c8024c7()
MSCTF.dll!74725951()
MSCTF.dll!74725956()
user32.dll!7e418a80()
MSCTF.dll!74725956()
user32.dll!7e42b401()
MSCTF.dll!74731331()
MSCTF.dll!74731336()
MSCTF.dll!74731336()
user32.dll!7e431923()
user32.dll!7e42b317()
user32.dll!7e42b326()
user32.dll!7e42b326()
user32.dll!7e430238()
user32.dll!7e430248()
ntdll.dll!7c90e473()
user32.dll!7e419d84()
user32.dll!7e42993c()
comdlg32.dll!763c0086()
comdlg32.dll!763d283c()
comdlg32.dll!763d316c()
ntdll.dll!7c910222()
ntdll.dll!7c910222()
ntdll.dll!7c91019b()
ntdll.dll!7c9101db()
msvcp80.dll!
std::basic_string<char,std::char_traits<char>,std::allocator<char>
::compare(unsigned int _Off=1051462, unsigned int _N0=273, const char
* _Ptr=0x00000001, unsigned int _Count=1641422) Line 1978 + 0x23
bytes C++
user32.dll!7e418734()
user32.dll!7e423ce4()
user32.dll!7e423d34()
user32.dll!7e423d00()
user32.dll!7e423d00()
user32.dll!7e423b30()
user32.dll!7e423b41()
user32.dll!7e43e577()
user32.dll!7e43e577()
user32.dll!7e43e599()
user32.dll!7e418734()
ntdll.dll!7c9100b8()
ntdll.dll!7c910041()
ntdll.dll!7c91005d()
user32.dll!7e41885a()
user32.dll!7e41882a()
user32.dll!7e4188d1()
user32.dll!7e4188da()
comctl32.dll!77421145()
comdlg32.dll!763d251d()
comdlg32.dll!763d316c()
user32.dll!7e42a5a6()
user32.dll!7e42f360()
ntdll.dll!7c9100b8()
mfc80.dll!CThreadSlotData::GetThreadValue(int
nSlot=0) Line 265 C++
mfc80.dll!CThreadLocalObject::GetData(CNoTrackObject *
(void)* pfnCreateObject=0x781ff99d) Line 430 + 0x5 bytes C++
mfc80.dll!AfxGetModuleThreadState() Line 468 + 0x16
bytes C++
mfc80.dll!AfxWndProc(HWND__ * hWnd=0x00180b80,
unsigned int nMsg=78, unsigned int wParam=0, long lParam=25807444)
Line 388 + 0x10 bytes C++
mfc80.dll!AfxWndProcBase(HWND__ * hWnd=0x00180b80,
unsigned int nMsg=78, unsigned int wParam=0, long lParam=25807444)
Line 411 + 0x16 bytes C++
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e42a013()
user32.dll!7e42a998()
user32.dll!7e418734()
user32.dll!7e418816()
nvoglnt.dll!6974466f()
user32.dll!7e428ea0()
user32.dll!7e428eec()
ntdll.dll!7c90e473()
user32.dll!7e4194be()
user32.dll!7e42c174()
user32.dll!7e4292e3()
comctl32.dll!773eb001()
user32.dll!7e4186e7()
comctl32.dll!77410336()
comctl32.dll!774138ab()
comdlg32.dll!763cfca8()
comdlg32.dll!763d38b2()
comdlg32.dll!763d38e9()
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e42a013()
user32.dll!7e42a039()
user32.dll!7e418734()
user32.dll!7e418816()
nvoglnt.dll!6974466f()
user32.dll!7e428ea0()
user32.dll!7e428eec()
ntdll.dll!7c90e473()
user32.dll!7e4194be()
user32.dll!7e42af42()
user32.dll!7e4292e3()
comctl32.dll!7743ab76()
ntdll.dll!7c910a36()
comctl32.dll!7743c0a8()
comctl32.dll!7742177a()
kernel32.dll!7c80a284()
shlwapi.dll!77f641fb()
ntdll.dll!7c91005d()
kernel32.dll!7c80fd8f()
kernel32.dll!7c80fd5f()
comdlg32.dll!763cde26()
kernel32.dll!7c80fd5f()
comdlg32.dll!763cdb52()
comdlg32.dll!763d4778()
comdlg32.dll!763d4784()
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e42a013()
user32.dll!7e42a998()
mfc80.dll!CWnd::DefWindowProcA(unsigned int nMsg=4121,
unsigned int wParam=0, long lParam=25809936) Line 1035 + 0x13
bytes C++
mfc80.dll!CWnd::WindowProc(unsigned int message=4121,
unsigned int wParam=0, long lParam=25809936) Line 1742 + 0x13
bytes C++
mfc80.dll!AfxCallWndProc(CWnd * pWnd=0x00000000,
HWND__ * hWnd=0x00180b80, unsigned int nMsg=4121, unsigned int
wParam=0, long lParam=25809936) Line 243 C++
mfc80.dll!AfxWndProc(HWND__ * hWnd=0x00180b80,
unsigned int nMsg=4121, unsigned int wParam=0, long lParam=25809936)
Line 388 + 0x10 bytes C++
mfc80.dll!AfxWndProcBase(HWND__ * hWnd=0x00180b80,
unsigned int nMsg=4121, unsigned int wParam=0, long lParam=25809936)
Line 411 + 0x16 bytes C++
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e42a013()
user32.dll!7e42a998()
user32.dll!7e418734()
user32.dll!7e418816()
nvoglnt.dll!6974466f()
user32.dll!7e428ea0()
user32.dll!7e428eec()
ntdll.dll!7c90e473()
user32.dll!7e4194be()
user32.dll!7e42af42()
user32.dll!7e42f40b()
user32.dll!7e42f3c2()
Test.dll!CTestView::OnBeginPrinting(CDC *
pDC=0x95210f77, CPrintInfo * pInfo=0x7822f562) Line 242 + 0x17
bytes C++