heap-corruption

    2

    1답변

    저는 몇 주 동안 기본 CLR 호스팅을 사용하고 있습니다. 처음에는 꽤 잘 돌아갔다. 하지만 나중에 응용 프로그램의 일부가 힙 손상을 일으키는 것으로 나타났습니다. 이 문제는 CLR 시작으로 인한 것임을 알았습니다. (코드의 짧은 버전은 다음을 참조하십시오.) #pragma comment(lib, "mscoree.lib") #include <mscoree

    1

    1답변

    내가 서명을 수행하기 위해 스마트 카드를 사용하면 내가 C를 사용하여 ++ 및 Visual Studio 2010 하고있다가 나타납니다 : "프로그램이 완료되면. " 출력에 Windows has triggered a breakpoint in MyProgram.exe. This may be due to a corruption of the heap, and

    2

    3답변

    시작 위치를 모르겠습니다 ... 프로그램을 닫을 때 Visual Studio에서 계속 힙 손상 오류가 발생합니다. 그것이 부서지는 위치는 다양합니다. 40 시간 이상 동안 나는 (스마트 포인터 제거, 구현 숨기기 제거, 스마트 포인터 재 추가, 모든 클래스를 복사 불가능하게 만들기, 소멸자를 비공개로 만드는 등) 코드를 변경하는 데 소비했다. stack :

    3

    1답변

    CDB (Microsoft Console Debugger) 및 WinDbg을 사용하여 힙 손상이 발생했을 때 ReadFile에 P/Invoke을 강제로 중단하려고 시도했습니다. 나는 chBuf 배열에 할당 한 것보다 더 많은 바이트를 텍스트 파일에서 읽습니다. 디버거에서 GC.Collect 이후에 액세스 위반이 표시되지 않습니다. 이 너무 늦습니다.입니다.

    0

    1답변

    WinDbg + PageHeap + ApplicationVerifier - Microsoft 도구를 사용할 수 있음을 알고 있습니다. 나는 C++에서 사용할 수있는 많은 도구가 있고 거기에 C#과 비슷한 것이 있는지 궁금한가요?

    1

    2답변

    저는 임베디드 장치에서 Linux를 사용 중입니다. 내 아키텍처는 armv5입니다. 상당히 큰 (~ 30kloc) 시간이 지남에 따라 발생하는 일종의 힙 손상이 있습니다. 내 아치가 지원되지 않으므로 valgrind를 실행할 수 없습니다. 내 응용 프로그램이 스레드를 사용하고 스레드 중 하나에서 손상이 가장 많이 발생하기 때문에 제한된 gdb 만 실행할 수

    8

    1답변

    GC 힙 손상을 디버깅 중이며 WinDbg + PageHeap + AppVerifier + GCStress에서 프로그램을 실행하고 싶은 단계로 왔습니다. .. reg.exe add "HKLM\SOFTWARE\Microsoft\.NETFramework" /f /v HeapVerify /t REG_DWORD /d 1 reg.exe add "HKLM\SOFTW

    2

    1답변

    릴리스 모드에서 컴파일 할 때 std :: string 할당 해제시 힙 손상이 발생합니다. 실제로 Atc.dll이라는 DLL에서 Utilies.dll이라는 다른 DLL에있는 함수를 호출합니다. Atc.dll의 기능이 끝나면 힙 손상이 발생합니다.는 Atc.dll에서이 제 기능 : std::string ConfigFileManager::getPathXMLFi

    1

    3답변

    MSDN에 따라 Visual Studio에서는 힙 손상을 추적하기 위해 기본적으로 0xFD로 설정된 "no man 's land"바이트가 추가 된 디버그 모드에서 특수 힙을 사용합니다. 이러한 값을 덮어 쓰면 시각적으로 중단되도록하는 방법이 있습니까? 난 아무데도이 정보를 찾을 수 있으며 MSDN 당신은 때 디버그 모드에서 _CrtSetDbgFlag()를

    2

    4답변

    그래서 나는 C에서 다음 열거 방법이 :이 찾을 수 enum enum_type GetInfo (int socket, unsigned char *data) { } 을하고 API에서 : 수신 데이터 포인터에 기록된다 나는이 같은 일을 해요 경우 * 데이터 .... 그래서 : unsigned char *data; enum_type enum1; enu