emacs & gdb 로 디버깅할때요..
글쓴이: login321 / 작성시간: 토, 2009/10/03 - 1:37오후
1. emacs로 소스코드 작성
2. 컴파일 후 gdb로 디버깅
3. 버그 발견하면 emacs로 소스코드 수정
4. 재컴파일 후 gdb로 디버깅
의 순서로 디버깅을 하는데
(4. 재컴파일) 할때에 output파일을 이미 gdb가 점유중이라
컴파일러가 쓰기 권한을 얻지 못합니다.
그럼 디버그하고 재컴파일 할때마다 매번 gdb를 종료(kill명령)해야하나요?
<a href="http://" class="bb-url" rel="nofollow">http://wiki.kldp.org/wiki.php/EmacsGdbEtagsCscope?refresh=1</a> 여기 emacs & gdb 강좌대로 따라 하는데 버그 수정하고 gdb를 안끄고 재컴파일아니까 gcc -g buggy.c cannot open output file a.exe: Permission denied
이렇게 나오네요...gdb가 파일을 사용중이라 "쓰기 불가"라는 거 같은데
gdb에서 kill하지 않고 우회하는 방법이 없을까요?
vim 같은 경우는 현재 편집중인 파일도 다른 프로세서가 쓸수 있도록 하고 수정되면 감지해서 불러오더라구요.
gdb도 그렇게 자기가 사용중인 파일을 다른 프로세서가 쓸수 있도록 하게 할 수 있없런지요.
Forums:
늘 사용하던 gdb를 kill
늘 사용하던 gdb를 kill 하고서 빌드해서 다시 사용하고 그랬는데
님 같은 생각을 한번도 해보지 않았다니.. 개발자 마인드가 부족한가 봅니다. 저는 ^.^
일단 현재 사용하던 gdb는 kill 해야 맞는것 같으니깐 Makefile 같은 곳에 kill을 하고나서
빌드 한 다음 다시 gdb로 불러오는 스크립트 같은것을 하나 만들면 가능할것 같기는 합니다만
해 보질 않아서 잘 모르겠군요
저도 찾아 봐야 겠군요 ;)
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
application만 종료시키면 되는데요
gdb는 그대로 두고, gdb에서 실행중인 응용 프로그램만 종료시킨 후, gdb 내에서 해당 응용 프로그램을 다시 실행시키면 됩니다.
gdb 에서 응용 프로그램을 다시 실행시킬 때, 해당 응용 프로그램이 바뀌면, gdb가 이것을 감지해서 자동으로 reload 합니다.
댓글 달기