2016-10-26 2 views
0

인 경우 우선적으로 최적화 수준이 -O0이고 디버그를 위해 gdb를 사용할 때 -ggdb3 플래그 을 포함하면 추적 점이 일관되지 않습니다. 내가 "목록"을 얻기 위해 사용하는 줄 번호는 항상 몇 줄에 걸쳐 있습니다. cpp는 파일이 너무 커서 행 번호가 gdb가 틀리기 때문에 10000 회선 이상이 있습니다. 예를 들어 gdb의 추적 지점은 1005 라인이지만 실제로는 1000 라인에만 있습니다.gdb를 사용하여 디버깅 할 때 추적 점이 코드 번호가

+0

@lee, 디버그 버전을 컴파일해도 모든 공백 (서식 지정)이 제거되므로 물론 다를 수 있습니다. 실제 코드 행만 포함합니다. –

+0

@ Шах, 나는 그것이 많은 이유가 아니라고 생각한다. 공백이 많지만 추적 점은 단지 몇 줄에 불과하다. –

+0

@lee, 좋아요, 모든 컴파일 플래그를 올릴 때. 다른 경우 디버거 플래그를 설정해야 디버거에 추가 정보가 저장되지 않으므로 소스 코드와 연결할 수 있습니다. –

답변

0
  1. 여기에 대부분 사용자의 답변 인 previous question이 있습니다.
  2. 또한 디버그 정보를 포함하려면 -g를 포함 시키십시오.
+0

디버그 정보를 포함하는 -ggdb3 플래그가 포함되었습니다. –

0

나는 cpp 파일이 Windows에서 업로드되는 이유를 발견합니다.이 파일 형식은 DOS이고, 모든 줄에는 "줄 바꿈"이있어서 gdb가 잘못된 정보를 얻습니다. dos에서 uinx로 파일 형식을 변경하는 것이 좋습니다!

관련 문제