Microsoft MVP성태의 닷넷 이야기
.NET Framework: 20. System.AccessViolationException 예외가 발생한 한 예. [링크 복사], [링크+제목 복사],
조회: 27706
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

좀 더 정확히는, 아래와 같은 오류가 발생했습니다.

System.AccessViolationException: attempted to read or write protected memory. This is often an indication that other memory has been corrupted.
 at Microsoft.Office.Interop.InfoPath.SemiTrust._Application2.get_Name()
 at InfoMHost.MyHost.LoadTarget( Object pApp, Object pDoc, String infoXMLText ) in ...... line XX

PIA 어셈블리를 통해서 실제 COM 개체의 메서드/프로퍼티를 호출하는 데 위와 같은 오류가 발생한 것입니다.

직접적인 원인은, PIA 어셈블리에서 구현된 타입의 Method 순서와 실제 COM 개체의 IDL 파일에 정의된 순 가상 함수의 순서가 일치하지 않아서 발생한 것이였습니다.

"Attempted to read or write protected memory" 라고 하는 것은, 즉 PIA 를 통해서 vtable 의 3번째에 있는 함수를 호출했으나, 실제 COM 개체에서는 ( 예를 들어 ) 5번째에 있는 함수 호출을 발생시키다 보니 입력인자/반환인자가 일치하지 않아서 잘못된 메모리 접근을 하게 되어서 그런 듯 싶습니다.

즉, 위와 같은 경우에서만 발생하는 것이 아니고 그 외의 모든 "잘못된 메모리 접근" 에 대해서 발생할 수 있는 문제이므로 버그를 잡는 것이 상당히 어려운 경우라고 할 수 있겠습니다.

이번에는 그나마 좀 쉽게 해결했지만 ^^; 개인적으로 다시는 보고 싶지 않은 예외입니다.








[최초 등록일: ]
[최종 수정일: 1/19/2005]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 136  137  138  139  140  [141]  142  143  144  145  146  147  148  149  150  ...
NoWriterDateCnt.TitleFile(s)
1560정성태1/1/201422357오류 유형: 199. Hyper-V - Checkpoint 생성 오류
1559정성태12/30/201325725.NET Framework: 401. windbg에서 확인해 보는 관리 힙의 인스턴스 구조 [2]
1558정성태12/29/201335319.NET Framework: 400. 눈으로 확인하는 LayoutKind 옵션 효과 [2]파일 다운로드1
1557정성태12/27/201324250.NET Framework: 399. LayoutKind 옵션에 대해 [2]
1556정성태12/27/201344550개발 환경 구성: 208. IIS + Node.js 환경 구성 [8]
1555정성태12/27/201331102개발 환경 구성: 207. IIS의 80 포트를 공유하는 응용 프로그램 만드는 방법 [1]
1554정성태12/26/201336431Windows: 78. 마음에 드는 윈도우 8.1 태블릿 - 델 베뉴 8 프로 5830 [4]
1553정성태12/26/201323513개발 환경 구성: 206. JNBridgePro와 한글 인코딩 문제파일 다운로드1
1552정성태12/25/201328728개발 환경 구성: 205. JNBridgePro를 이용해 C#에서 Java메서드 호출 테스트파일 다운로드1
1551정성태12/24/201323864.NET Framework: 398. tech-days 미니 토요세미나 - 3회 C#편 PPT 자료파일 다운로드1
1550정성태12/13/201326274Windows: 77. Windows 8 - 잠시 사용을 안하는 경우 화면 잠김 상태로 빠지는 문제
1549정성태12/13/201329810VC++: 73. IIS - ISAPI 필터 제작하는 방법 [2]
1548정성태12/10/201322377오류 유형: 198. C# - 제네릭 covariance/contravariance 사용할 때 컴파일 오류가 발생한다면?
1547정성태12/10/201332594.NET Framework: 397. C# - OCX 컨트롤에 구현된 메서드에 배열을 in, out으로 전달하는 방법파일 다운로드2
1546정성태11/28/201325976.NET Framework: 396. C# - 프로퍼티로 정의하면 필드보다 느릴까요? - windbg / ollydbg [3]
1545정성태11/28/201329845.NET Framework: 395. C# - 프로퍼티로 정의하면 필드보다 느릴까요? [3]
1544정성태11/27/201326423개발 환경 구성: 204. Visual Studio Online "Monaco" 서비스와 github 연동
1543정성태11/27/201331126오류 유형: 197. error MSB8008: Specified platform toolset (v120) is not installed or invalid. [1]
1542정성태11/27/201336761오류 유형: 196. The procedure entry point InitializeCriticalSectionEx could not be located in the dynamic link library KERNEL32.dll
1541정성태11/22/201338001.NET Framework: 394. async/await 사용 시 hang 문제가 발생하는 경우 [7]파일 다운로드1
1540정성태11/20/201326327개발 환경 구성: 203. Azure - WEB SITES 서비스 소개 [4]
1539정성태11/19/201330316VS.NET IDE: 83. 형상 관리 서버 운영을 대신해 주는 Visual Studio 온라인 서비스
1538정성태11/19/201331172오류 유형: 195. 웹 사이트의 모든 정적 컨텐츠 요청에 대해 "Internal Server Error" 응답
1537정성태11/19/201322785오류 유형: 194. 윈도우 서버 백업으로 인해 Hyper-V VM들의 상태가 모두 "Backing up..." 상태로 오래 지속되는 문제
1536정성태11/19/201327536오류 유형: 193. 윈도우 서버 백업 - Hyper-V 가상 머신이 백업되지 않는 경우
1535정성태11/18/201327664.NET Framework: 393. Internet Explorer 11에서 ASP.NET 컨트롤의 크기가 달라지는 문제 [1]
... 136  137  138  139  140  [141]  142  143  144  145  146  147  148  149  150  ...