2010-05-20 3 views
1

나는 익숙해 지려고 노력하고있는 엄청난 양의 레거시 코드를 다루면서 최근에 매우 좌절감을 느끼고있다.상황에 맞는 코드 검색 도구가 있습니까?

특정 함수 호출을 검색하려고하면 완전히 관련성이없는 많은 결과가 나타납니다. 그들 중 일부는 댓글을

// Fixed functionality in foo() so don't need to handle this here any more 

말을 예를 들어, 발견하기 쉬운하지만 그들은 특정 경우에 컴파일 된 모듈에서 다른 함수에서 호출 판명 때문에 다른 사람이 수동으로 발견하기가 훨씬 더 어렵다, 또는이다 #if 0 인 훨씬 더 큰 코드 블록의 일부입니다.

내가 원하는 것은 용어를 검색하고 주석 처리 된 코드를 포함하거나 제외 할 선택을 제공 할 수있는 검색 도구가되고 싶습니다. 그런 다음 해당 코드 스 니펫이 관련 되려면 #defines 목록과 함께 검색 결과가 표시됩니다.

저는 C/C++로 작업하고 있습니다. 그러나 특정 코멘트 구문 이외에 더 일반적으로 적용 할 수 있어야한다고 생각합니다.

이러한 도구가 있습니까?

답변

1

전적으로 당신이 쓴 것이 아니지만이 방법은 매우 유용합니다.

GrepWin - 파일을 검색하기위한 무료 시각적 "grep"도구입니다.

내가 찾으 매우 도움이 때문에 :

  • 그 별도의 응용 프로그램
  • 는 정규 표현식을 처리 (내 편집기를 고정하지 않습니다)
  • 그것의 빠른
  • 검색 대상 폴더를 지정할 수 있습니다 , 그리고 어떤 filetypes (정규식을 여기에 처리)
  • 파일 크기에 의해 제한 할 수
  • subdirs를 포함 할 수 있습니다 (또는 정규식 제외)
+0

재미 있습니다. 감사합니다. – Vicky

1

거의 모든 괜찮은 소스 브라우저는 함수가 정의 된 곳으로 이동 및/또는 그 함수의 모든 호출을 나열하고 호출 사이트로 바로 드릴 것입니다. 이것은 일반적으로 소스 코드의 상당히 완전한 구문 분석을 기반으로하므로 주석, 전처리기에 의해 제외 된 코드 등을 무시합니다 (실제로 적어도 하나의 경우 소스 브라우저에서 사용되는 파서는 거의 확실합니다 컴파일러 자체에서 사용되는 것보다 낫다).

+1

저는 보통 Visual Studio를 사용합니다. 그러나 이것은 VS에서 빌드하기가 어려울 수있는 레거시 프로젝트입니다 (제가 틀렸다면 저를 고치십시오. 그러나 실제로 VS에서 프로젝트를 빌드 할 수 있어야합니다. 소스 브라우징을 사용 하시겠습니까?) 원래이 도구는 내가 액세스 할 수없는 다른 도구로 개발되었지만, 그렇게해도 너무 지루해서 지능적인 소스 브라우징을 할 수 없을지 의심 스럽습니다. 효과적으로 내가 갖고있는 것은 C/C++ 소스와 헤더 파일의 큰 혼란입니다. 구조가 부족함에도 불구하고 지능적으로 대처할 수있는 모든 소스 브라우저 (Win 또는 Linux 용)가 있습니까? – Vicky

+0

@Vicky : 질문에 개방적입니다.VS에서 검색하는 소스 중 일부는 컴파일러를 실제로 실행하지 않고도 작동합니다. 실제 컴파일보다는 탐색을 위해 별도의 파서를 사용합니다. 그것은 여전히 ​​해석 될 수있는 무언가 여야합니다. 그래서 일하는 것은 나이와 지저분한 정도에 달려 있습니다. –