인프런에 Windows Debugging Tip강좌 올렸습니다.
1,2편 무료공개이고 4K해상도 지원합니다.
1,2편 무료공개이고 4K해상도 지원합니다.
‘DLL프로젝트에서 static CRT를 사용할 경우 각각의 static CRT는 각각의 heap을 사용한다.따라서 static CRT를 사용하는 DLL을 2개 사용할 경우 프로세스에는exe(1) + dll(1) + dll(1) = 3 해서 최소한 3개의 heap이 존재한다.’ 라고 기억하고 있다. 근데 최근에 발표자료 만들면서 테스트 해보니 DLL을 여러 개 로드해도 heap 개수가 증가되지 않는 것으로 확인되었다. Windows 10이전에는 CRT가 msvcrtxxx.dll에 구현되어 있었고 … More DLL에서 static CRT를 사용하면 각각의 DLL은 다른 heap을 사용하는가?
디버거에서 exe를 launch한 경우 LFH를 사용하지 않는다는 글을 어디선가 본것 같다.일단 Visual Studio Debugger에 대해서는 해당되지 않는 얘기다.Windows 10/11 모두 exe를 직접 실행하거나 Visual Studio에서 launch한 경우 LFH를 사용하는 것을 확인했다. 이 와중에 조금 이상한 점을 발견했는데 windbg에서 launch하는 경우 동일 사이즈 메모리 할당에 대해서 HeapAlloc()에서 돌려주는 메모리의 실제 사이즈(heap entry의 사이즈)가 다르다는 것이다.debug/release 또는 … More windbg에서 실행할 때 HeapAlloc()이 다르게 동작하는 이유
2013년 12월 27일 , Project D Online 출시 준비할때였다. 첫번째 보스(벽에서 미사일 쏘는 보스-혼두라 모티브)랑 싸우고 나오면 나와서 맵체인지 할때 게임이 멈추는 증상이 있었다. 멈춘다고 하는것은 플레이어 입장이고 정확하게 얘기하자면 데드락 아니면 무한루프인데 이 경우는 데드락이었다. 데드락은 데드락인데 그게 어플리케이션이 사실상 크래시한거고 크래시에 의한 데드락이었다. 버그 재현도 잘 되지 않아서 엄청나게 절망했었다. 최초 같은 사무실에 … More 2013년의 어느날 디버깅 메모(windbg)