2010-02-05 2 views
4

가능한 중복 :
How to avoid entering library's source files while debugging in Qt Creator with gdb?자동으로 건너 뛰는/무시 외부 코드

사람은 프로젝트에 코드를 입력 GDB에게 어떻게 알아? 디버거가 "프로젝트에서"무엇이고 라이브러리가 무엇인지를 아는 것이 어렵다는 것을 알고 있습니다.하지만 순진적인 검사가 도움이 될 수 있다고 생각합니다. 예를 들어 사용자 집에없는 파일을 보지 말아야합니다. 예배 규칙서.

MyFunction(complexVarable, complexvar); //passed by value 

및 GDB는 두 전달 된 값의 복사 생성자를 통과 주장하지만,의 MyFunction 내가 걱정하는 모든입니다 : 내가 자주 같은 코드가 있습니다. 어떤 팁? 질문은 두 부분으로,

  1. 가 (하지의 홈 디렉토리에서) 나의
  2. 함수 호출에 대한 사본을 건너 뛸 수없는 코드를 무시할 수 있습니다.

감사합니다.

EDIT : btw 필자는 emacs를 사용했는데, 놓친 도구가있을 수도 있지만 외부 gdb 프론트 엔드를 사용하고 있습니다.

+1

'next' ('step' 대신)와'finish'가 유용 할 수 있습니다. 기본적으로 Emacs gud-gdb 모드에서 후자의 경우'C-x C-a C-n' /'C-x C-a C-f'입니다. – ephemient

답변

1

제 의견으로는이 작업을 수행 할 수 없습니다. 모든 프로젝트마다 한 기능에서 다른 기능으로 데이터 흐름이 있습니다. gdb는 데이터 흐름을 처리하도록 설계되었습니다. 그래서 프로젝트가 흐름의 중간에 있다면, evry 함수는 가져 오는 입력과 관련하여 어떤 목적을 가지고 있기 때문에 gdb는 도움이되지 않습니다. 당신이 할 수있는 것은 별도로 동일한 함수를 생성하고 그것이 필요로하는 입력을 제공하여 흐름을 실행하는 것처럼 시나리오를 복제하는 것입니다.

+0

며칠 동안이 질문을 남겼습니다. 그리고 나는 이것이 답이 될까봐 걱정했습니다. thanks N'way –

+0

@ChrisH :이 기능은 최신 gdb에서 "건너 뛰기"명령으로 사용할 수 있습니다. 이 시점에서 gdb 7.5 릴리스에는이 기능이 없으므로 소스에서 gdb를 빌드해야합니다 (주간 릴리즈 7.5.50 작품이며 빌드하기 쉽습니다). – nimrodm

관련 문제