문제

Windows (64 비트)에서 작업중인 프로젝트 중 하나에 문제가 있습니다. 프로그램은 때때로 충돌하지 않으며 때로는 그렇지 않으며, 문제가 여러 링크 된 C 런타임과 연결되는 것으로 생각됩니다. Windows에서 이것을 어떻게 감지 할 수 있습니까? Eppends.Exe를 사용해 보았지만 CRT를보고하지 않았습니다.

도움이 되었습니까?

해결책

여러 C 런타임 라이브러리와 정적으로 연결할 수는 없을 것입니다. 적어도 방대한 경고를 생성하는 많은 기호 정의 충돌이 발생하며 무모한 엔지니어만이이를 무시할 것입니다.

와 함께 depends, 나는 동적 프로파일 링 옵션을 사용하여로드하는 동적 CRTL에 대한 모든 종속성을 확인해야합니다. 아무것도 일어나지 않으면 문제가 다른 곳이라고 생각합니다.

그러나 C- 레벨 API를 가진 DLLS는 CRTL에서 공유 상태에 의존해서는 안되며, 가장 일반적으로 메모리 할당 기준이어야하며, 표준화 된 프로토콜을 채택해야하기 때문에 귀하의 문제는 어쨌든 다른 경우에 귀하의 문제가 다른 곳에 있다고 생각합니다. 발신자 알로치, 칼리 우주 또는 메모리 할당 콜백 등과 같은 크로스 -API 메모리 관리. 즉, 동일한 프로세스의 여러 CRTL은 일반적으로 메모리 관리 프로토콜의 올바른 사용으로 인해 문제가되지 않습니다.

일시적 실패의 경우 멀티 스레딩 또는 힙 손상을 의심합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top