我想debugg該項目於2010年MSVS 實現 - C++;當我對源代碼進行消磁處理時,MSVS報告了以下故障。訪問voilation閱讀位置
故障報告:
"First chance exception at 0x00000013fb5b9ee in unit.exe: 0xc00000005 access voilation reading location 0x00000000000000c."
問題的關鍵在於獲取地址。
int base = (*(abc::g_runc1.m_paulsenderpin.m_lastchunk_p)).xcpp::cxcppoutput::m_baseaddress;
我的項目是非常大的,包括源代碼,
總之它可以被描述爲: - 保羅是與連接到C1發件人銷的模塊。 - xcpp是接口
此源代碼和項目是正確的,並且在ARM編譯器上沒有失敗,但在MSVS上它提供了訪問衝突錯誤。 在msdn上有一些關於由程序集設置的權限的帖子,它避免了讀取所尋址的位置。如果是這樣,如何改變它...? 還是有更好的選擇來找到問題......?
任何幫助表示讚賞。
什麼是'abc :: g_runc1.m_paulsenderpin.m_lastchunk_p'?它是如何聲明的?如果它是一個指針,你檢查它不是'NULL'嗎? –
abc :: g_runc1.m_paulsenderpin.m_lastchunk_p = 0x00000000000 paulsenderpin struct {pinbase,m_currentchunk,m_lastchunk,....}。內存分配給發送者引腳的保持,memblock 1024字節。 除此之外,還有8個這樣的針腳,保羅,波莉,勞爾,..... 除了保羅以外的所有baseaddress都以相同的方式進行了decleared,並且沒有記憶語音錯誤。只有保羅在任何地方都有這個問題。 和MSVS會爲它引發異常,但ARM不會。 –
如果它是零,那麼它意味着它是'NULL',這通常是非法地址。 –