Debug assertion failed 6가지 해결 방법 (debugger 팁) Assert() 사용 간혹, Release 모드에선 정상, Debug 모드에선 에러가 발생하는 경우가 있습니다. Assert()는 Release 모드에선 무시가 되며, 에러가 발생하는 부분을 포함하지 않게 됩니다. 즉, 오류가 발생하는 부분을 컴파일러가 잘라버리고 프로그램이 구동되니, 실제로는, Release 모드에서 "정상"이라고 말할 수 없습니다. 서비스팩 옆 동료는 디버깅이 잘되는데, 나만 안된다면, 서비스팩을 설치해서 오류가 나던 부분의 소스 코드를 비교해 보세요. 서비스팩을 설치해서 오류를 제거했다면, 분명 뭔가 다를 겁니다. 서비스팩을 설치해서 오류를 제거했다면 말이죠. DDX_Text(), Resource.h...
ELF 파일이란, 구조, 포맷, 분석, 생성 원리 (리눅스 커널 2.2 부터 지원) Executable and Linkable Format (ELF 파일) ELF- AT&T System V Unix 시스템에서 개발- 리눅스를 포함하여 거의 모든 UNIX계열의 Object 파일 및 실행 파일 표준 binary format- 리눅스 커널도 2.2 버전으로 오면서 ELF 파일 포맷을 지원하며, 커널의 이미지도 ELF 형태로 만들 수 있음 ELF Header- ELF 파일 포맷임을 표시하는 magic number, 이미지의 형태(.o, exec, .so)- 실행되는 CPU 정보, Little-endian인지 Big-endian인지 표시하는 Byte 순서와 같은 파일 내용의 기본적인 정보 포함 Program He..
GDB 사용법과 명령어 정리, GNU debugger 디버깅 (메모리 덤프 해결) GNU debugger GDB 소개, GDB 사용법 GNU debugger이며, 줄여서 GDB라고 불리는 이 소프트웨어는 GNU 소프트웨어 시스템을 위한 표준 GNU debugger이다. GNU debugger GDB는 다양한 유닉스 계열 시스템에서 동작하며, C, C++, 포트란을 비롯한 수많은 프로그래밍 언어를 디버깅하도록 도와주는 이식성 높은 GNU debugger이다. 단순하고 직관적인 디버거인 GNU debugger GDB GNU debugger GDB는 CLI(명령 라인 인터페이스)를 통해 각종 정보를 제공하는데, 메모리 정보, 스택 정보, 레지스터 정보 등 매우 다양한 정보를 제공한다. GDB 사용법 = 기본적..