디버깅이 끝날 때까지 내 소스 코드를 그대로 유지해야한다는 것에 지쳐 가고 있습니다. 코드를 변경할 때마다 GDB에서 불평하기 시작합니다.나중에 GDB 용 GCC를 사용하여 프로그램의 소스 코드를 바이너리에 임베드
경고 : 소스 파일이 실행 파일보다 최신입니다.
내가 다시 컴파일하기 전까지는 항상 그렇게 빨리 완료 될 수 없습니다. 바이너리에 프로그램의 소스 코드를 포함시키고 최신 버전 대신 GDB를 사용하게 만들 수 있다면 좋을 것 같습니다.
누구나 방법을 제안 할 수 있습니까? 이것이 전혀 구현 되었습니까?
확실히 새로운 기능으로 구현할 충분한 시간/기술/인내심/필요성이 없습니다. 그러나 아직 구현되지 않았기 때문에 상당히 놀랍습니다. 대부분의 경우 그것이 필요하지 않아야한다는 데 동의하지만, 때로는 약간의 사용이있을 수 있습니다. 예를 들어, 잘못된 것을 찾기 위해 오래된 바이너리로 디버거를 시작합니다. 문제의 원인을 찾았지만 코드의 절반을 작성하고 저장 한 직후 GDB 세션은 단순한 오타로 인해 충돌합니다. 이제 디버거를 사용하지 않고 코드를 수정하거나 롤백하거나, 프로그램을 재 작성하거나, GDB를 실행하고 변경 사항을 실행 취소해야합니다. – undercat
@vovick : 최소한 두 가지 이유가 있습니다. 하나는 역사적입니다. 현재 사용할 수있는 풍부한 리소스를 항상 사용할 수있는 것은 아니 었습니다. 사람들은 디버깅 가능한 코드를 실제 소스로 혼란시키지 않는 것이 좋다고 생각했습니다. 너무 많은 디스크 공간과 메모리가 필요했기 때문입니다. 옛날에, 프로그램을 메모리에 집어 넣는 것만으로는 힘들었습니다. 추가 디버깅 정보를 추가하는 것만은 말할 것도 없었습니다. 다른 하나는 실용적입니다. 사람들은 퍼팅을 보증하기 위해 관련 소스를 사용하기가 너무 어려워하지 않습니다. 당신이 제안한대로하기위한 노력. –