소스분석툴을 구하고 싶습니다. 어디서 구할 수 있나여...?

horse76의 이미지

os : winxp & red hat linux 9

소스분석을 하게 되었는데 소스의 양이 너무 방대해서 하나씩 따라가기에는 너무 무리이기에 이렇게 글을 올리게 되었습니다.

좋은 소스분석툴(free ware인 것으로;^^)을 어디서 구할 수 있는지 알려주시면 감사하겠습니다.
참고로 리눅스 용용을 원합니다.

netjacker의 이미지

redhat에서 나온 source navigator를 추천합니다.
현재 버젼이 5.14이고 GPL라이센스입니다.

http://sourcenav.sourceforge.net

에 찾아가 보십시오.

크로스 레퍼런스나 코드 추적이 용이하게 되어 있읍니다.

horse76의 이미지

:D

감사합니다.......꾸뻑........

항상 발전하시는 리눅스 유저가 되시길....

감사감사

훌륭한녀석의 이미지

커널 분석하기엔 lxr도 좋습니다.

http://lxr.sourceforge.net/

쎄피로의 이미지

툴도 큰 도움이 되지만, vi + ctags 로 분석하시는 것이

상당히 도움이 많이 된다고 생각합니다.

vi에서 crtl+] 와 ctrl+t 로 열심히 휘젖고 다니는 것도... ^^;

소견이었습니다...

그럼..

세상은 넓고, 할 일은 많은데, 난 숨만 쉬고 있니?

xen07의 이미지

아.. 저도 이번에 어떤 소스 분석 하기로 해서
분석툴을 찾곤 했는데.. 좋은 정보를 얻었네요..^^;;
감사합니다~

ガンバレ!!~

opt의 이미지

C나 C++ 프로젝트라면 cscope 를 추천합니다.

----
LUX ET VERITAS | Just for Fun!

see2002의 이미지

GNU GLOBAL 이라는것도 있습니다.
html로 소스를 보여주면서 함수들을 링크로 따라갈 수 있어, 보기 편리하죠. :wink:
(클래스 계층도 그림같은건 불가능하지만...)
http://www.gnu.org/software/global/global.html

bluemoon의 이미지

doxygen도 괜찮죠. 설정하기에따라 소스네비게이터로 사용도 되니까..
인터페이스가 그래픽컬한 툴은 없을까 하는데.. cscope, ctags도 훌륭하지만
전체구조가 한눈에 들어오진 않으니까.. 전체구조를 그래프화 시켜 본다면
더 편할것 같네요.

charsyam의 이미지

Source Insight 추천합니다.
소스 분석용으로는 최강일듯 합니다. ^^

=========================
CharSyam ^^ --- 고운 하루
=========================

wafe의 이미지

charsyam wrote:
Source Insight 추천합니다.
소스 분석용으로는 최강일듯 합니다. ^^

Source Insight는 freeware가 아니죠.. ^^

Heejoon Lee

charsyam의 이미지

wafe wrote:
charsyam wrote:
Source Insight 추천합니다.
소스 분석용으로는 최강일듯 합니다. ^^

Source Insight는 freeware가 아니죠.. ^^

그래도 제가 아는한 최고의 툴이라는 ^^

=========================
CharSyam ^^ --- 고운 하루
=========================

cyber93의 이미지

저도 cscope를 추천합니다....

운형의 이미지

공개 프로그램으로는 vi + ctags + cscope를 쓰면 더 이상 바랄 것이 없네요.

Do you think that's the air you are breathing now?

jamongx의 이미지

Source Insight ~!

넘버원~!

용모수려 재색겸비

코퍼스의 이미지

운형님 의견에 한 표.
리눅스 관련 프로젝트라면 ctags와 cscope에 강추.
아.. 단!! 드라이버 관련 일을 할 때, 동일한 이름의 변수 값등을 여러 코드에서 정의하여 쓸 경우가 있지요.
(또는 define으로 여러 경우에 대해 쓰기도 하고요.)
이런 경우를 위해서 cscope의 결과물인 tags나 cscope의 db 파일(cscope.out이던가?) 등을 적당히 필터링 할 필요가 있지요.

안그러면 나중에 귀찮은 경우가 꽤 있답니다.
이런 경우를 위해 간단한 스크립트를 짜서 같이 쓰면 더욱 좋지요^^

A few Good Man

whyseeme의 이미지

소스 네비게이터 기능은 좋습니다.

괜찮더라고요.. 다만..
다~~아~~만~~

무쟈게 느립니다.

사용상 문제일 수도 있는데..
회사에서 서버기능을 두고 그위에서 여러명이 분석 작업을 했는데..

두명만 소스네비게이터를 써도 버벅버벅 ^^;;

근질 근질~~

girneter의 이미지

charsyam wrote:
wafe wrote:
charsyam wrote:
Source Insight 추천합니다.
소스 분석용으로는 최강일듯 합니다. ^^

Source Insight는 freeware가 아니죠.. ^^

그래도 제가 아는한 최고의 툴이라는 ^^

어차피 freeware 가 아니어도 좋다면
Visual SlickEdit 에 올인~

개념없는 초딩들은 좋은 말로 할때 DC나 웃대가서 놀아라. 응?

hados의 이미지

코퍼스 wrote:
운형님 의견에 한 표.
리눅스 관련 프로젝트라면 ctags와 cscope에 강추.
아.. 단!! 드라이버 관련 일을 할 때, 동일한 이름의 변수 값등을 여러 코드에서 정의하여 쓸 경우가 있지요.
(또는 define으로 여러 경우에 대해 쓰기도 하고요.)
이런 경우를 위해서 cscope의 결과물인 tags나 cscope의 db 파일(cscope.out이던가?) 등을 적당히 필터링 할 필요가 있지요.

안그러면 나중에 귀찮은 경우가 꽤 있답니다.
이런 경우를 위해 간단한 스크립트를 짜서 같이 쓰면 더욱 좋지요^^

위에서 말하는 "필터링" 이나 "간단한 스크립트" 에 대해서

좀 더 자세히 말씀해 주실수 있을까요? ^^;;

요새 이거 알고 싶어서 찾아다니는데 못 찾겠네요..ㅡ.ㅡ;;;

Prentice의 이미지

이 글도 명예의 전당에 보내는 것은 어떨까요..?

말씀해주신 프로그램들을 하나씩 찬찬히 들여다봐야겠습니다.. : )

최종호의 이미지

명예의 전당, 저도 찬성입니다!

요윗쪽에 비쥬얼하게 화면에 소스 구조 보여주는 스레드랑 같이 묶어서 올리면 좋을 듯 합니다.

개발자 명예의 전당, 또는 개발자 전당(포?)을 만들어서 그곳에다 올리는 것도 좋겠습니다!!

당장 생각나는 것은, 디버깅 툴 (메모리 디버거 포함) 이랑, 트레이스 툴, 분석 설계 / 다이어그램 툴,

실행파일 심볼분석툴 관련 스레드도 같이 올라갔으면 좋겠습니다.

yuni의 이미지

빠르기는 emacs와 gdb를 쓰면 좋더군요. 그렇지만 배열을 좀 비주얼하게 살필때 DDD 좋더군요. 이유는 모르지만 맨드레이크 배포판에 있는 DDD는 좀 문제가 발생하더군요. 그렇지만 소스로 된 rpm을 받아서 컴파일해서 설치하면 문제가 없습니다. 비주얼 툴로 디버깅하는 것 같습니다.

주말에 소스 네비게이터에 대해서 괜찮으시다면 질문 좀 드리겠습니다. 지난번에 한번 설치를해보았는데 레드헷이 아니라서 그런지 아니면 몰라서 그런지 디버깅을 못하겠더군요. :roll:

DDD도 KLDP에서 알게 된것입니다. 명예의 전당으로 옮기자는 의견에 한표 보탭니다.

==========================
부양가족은 많은데, 시절은 왜 이리 꿀꿀할까요?
=====================
"지금하는 일을 꼭 완수하자."

irondog의 이미지

제경험으로는... 수백만라인의 5천개가 넘는 소스 파일들을 분석 할때, ctags로는 좀 무리가 있었습니다. 그때 cscope를 사용해 봤는데 제법 쓸만 하더군요.
헌데 소스를 수정하면 cscope를 다시 돌려야 하는데, 이때 생성되는 cscope.out파일이 90메가가 넘습니다. 만드는데 오래 걸리죠.
그래서 모듈별로는 ctags를, 전체는 cscope를 이용해서 돌아 다닙니다. vim에서 속도도 빠르고 편하게 이용할 수 있었습니다.

돈주고 사는 프로그램은 source insight를 써 봤는데요. 정말 엄청 좋더군요. 단지 편집기를 vim으로 쓸 수 없기 때문에 자꾸 왔다갔다 짜증나서 안씁니다만...
visual 환경에 익숙하신 분들께는 정말 강추입니다. 저희 팀원들 대부분은 이 툴에 의존해서 작업하고 있습니다. slickedit이 더 좋다는 분들도 계시는데
들어보면 막상막하인것 같습니다. slickedit에는 소스 비교툴도 포함되어 있다더군요.

visual 툴들은 일단 프로젝트 파일 만들어 놓으면 알아서 분석해 주기 때문에 시간이 덜 낭비되지요. 빠르기도 하구요. 함수 클릭 한번에 한 화면에서 해동 소스를 참조해서 볼 수 있구요. 찾아주는 소스도 비교적 정확합니다. grep도 참 편했습니다. 정규식을 제대로(?)쓸 수 없다는게 좀 답답했습니다만...

또 수천개의 파일 중에 대충의 이름만 알아도 아주 편하게 open할 수 있어서 좋았습니다. 글자를 입력 할때마다 필터링을 통해서 가장 가까운 파일 리스트들을 갱신해 주더라구요.

그에 비해 cscope는 파일 이름이나 함수명이 명확해야 찾을 수 있구요. 대신 프로젝트 파일이라고는 하기 힘들지만 cscope.files라는 파일이 있어서 소스를 여기에 등록해 놓으면 분석시에 이곳에 정의된 파일들만 찾아서 분석합니다. 여기서 찾을 수는 있죠.

아직 vim+cscope+ctags의 조합에 불만은 없습니다만 visual 분석툴들에 비해 아쉬운 기능들이 많더라구요. 소스 분석툴에 대한 이야기는 예전에도 상당히 있었는데, 이번 기회에 서로의 기능을 자세히 비교해 보는 것은 어떨까요? 오픈소스쪽의 소스분석툴들도 한번 써보고 싶네요. ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.