gdb에서 소스 화일을 오픈하려는데..

armadillo의 이미지

반갑습니다.

gdb를 터미널 모드로 사용하려는데...

소스 윈도우에 다른 소스 화일을 어떻게 오픈하는지 알수가 없네요.

예를 들어 binary name은 main 이고, 소스화일들은

main.c : main이 있는 함수이고
init.c
process.c

위와 같이 세개로 구성된 프로그램인데, break point 를 process.c 에 있는 특정 함수에 걸려고 하는데

> gdb -tui main [enter] 하면

main.c가 source윈도우에 나오고, 아래 command window에 프롬프트가 있는데,

이때, source 윈도우에 process.c를 불러들여 소스를 보고 break point를 설정하려고하는데

어떻게 화일을 불러들이는지 알수가 없네요.

물론 다른 터미널이, 쉘로 잠시나가서 할수도 있겠지만, gdb내에서 그렇게 할수 있을거 같은데요..

메뉴얼을 찾아봐도 못찾아서 이렇게 질문드립니다.

혹 어디를 참조해야할지 알려주셔도 감사하겠습니다.

좋은 하루 되세요.

shint의 이미지

원하시는 내용은

gcc -g -o run test1.c test2.c
gcc -tui run

list 파일명:함수명
list myfunc.c:say_hello
list main.c:main

이거 같습니다.
컴파일할때는 -g 옵션이 붙어야 TUI에서 디버깅이 가능합니다.

layout next를 통해. 화면 보기를 변경 가능하고.
함수 내부로 들어갈때는 s 로 들어갑니다.

//
소스 참고용
http://eram.tistory.com/1

//
라이브러리 만들기
http://blog.naver.com/space0215/30041008428

//샘플
gcc -o run hello.c myfunc.c
gdb -tui -c core linux

덤프떠서 보기
objdump -S linux > tmp.txt
http://cafe.naver.com/cppstl/699

info win
info b

list myfunc.c:say_hello
list main.c:main
http://coffeenix.net/doc/develop/gdb.html#SEC47

//윈도우에서 UNIX사용환경 만들기
http://blog.naver.com/raon_pgm/150034538211

//Make
http://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make-3.html

//GDB 사용법
http://eram.tistory.com/1
http://blog.naver.com/hermet?Redirect=Log&logNo=88589788
http://www.viper.pe.kr/docs/gdb-manual.html
http://www.sangchul.kr/5069665
http://swarch.springnote.com/pages/6042259
http://blog.naver.com/dhan71?Redirect=Log&logNo=60169869996
http://www.sourceware.org/gdb/
http://psyoblade.egloos.com/2653919
http://www.gnu.org/software/gdb/documentation/
http://www.ibm.com/developerworks/kr/library/l-gdb/
http://web.eecs.umich.edu/~sugih/pointers/summary.html
http://kldp.org/node/71806
http://blog.daum.net/creazier/15309307
http://cafe.naver.com/linuxcare/27577

GDB TUI
http://rootfriend.tistory.com/406
http://www.oosoom.org/203
http://blog.naver.com/lithium81?Redirect=Log&logNo=80124382484
http://davis.lbl.gov/Manuals/GDB/gdb_21.html

TUI 보고 싶으면 컴파일 할때. -g 옵션을 주세요.
http://stackoverflow.com/questions/6642955/gdb-wont-run-in-tui-mode

GDB Multi Process
http://dol9.tistory.com/216

JICEGdbServer 로 GDB 디버깅 시작하기
http://cafe.naver.com/jice/157

GDB TUI Mac?
http://stackoverflow.com/questions/6612133/no-tui-support-for-gdb-on-mac
http://lists.apple.com/archives/Xcode-users/2009/Jul/msg00194.html
http://cgdb.github.com/
http://cgdb.sourceforge.net/screenshots.php

GDB 소스 컴파일하기
http://www.luuvish.org/9

GDB 솔라리스 64Bit
http://cafe.naver.com/xxxxgamexxxx/861

[VIM + GDB] gVim 디버깅 환경 clewn
http://mcchae.egloos.com/10941135

GDB 문제
http://kldp.org/node/123984
http://kldp.org/taxonomy/term/775
http://kldp.org/node/124713

Emacs Gdb Etags Cscope
http://wiki.kldp.org/wiki.php/EmacsGdbEtagsCscope

GDB Virtual Box 사용
http://kipple.egloos.com/4953117

GDB 원격사용
http://kldp.org/node/96441

GDB를 이용한 Core file의 분석
http://blog.naver.com/finnishmetal?Redirect=Log&logNo=20054963725

gdb [tip] -core file 사용 -
http://blog.naver.com/ikariksj?Redirect=Log&logNo=140037085121

[GDB] coredump file 생성하기
http://daeny2.tistory.com/21

디버깅 툴 - gdb 명령어 소개
http://cafe.naver.com/mcbugi/105886

[LINUX MEMORY LAYOUT]
http://blog.naver.com/hyunsung1026/80145224644

//기타.
extern "C" (심볼릭 링크와 list를 비교해보자)
http://blog.naver.com/hermet/87864741
http://blog.naver.com/hermet/91882549

GDB (색상 깊이값 비교)
http://blog.naver.com/freerf?Redirect=Log&logNo=33535392

리눅스 명령과 설명
http://cafe.naver.com/urnjfujt/6487
http://blog.naver.com/marine6309?Redirect=Log&logNo=100001795118

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

armadillo의 이미지

네...

: 컴파일할때는 -g 옵션이 붙어야 TUI에서 디버깅이 가능합니다.

이 부분은 아래와 같이 약간 수정해야할거 같습니다.

디버깅을 하려면 디버깅 정보가 포함되도록 컴파일시에 -g 옵션을 주어야 한다.

그런데 결국은 tui모드에서 다른 화일을 보기위해 오픈하는 명령은 없다는 이야기로 보입니다.

즉 tui모드의 장점인 화일을 자유로이 왔다 갔다 할수 있다는 점인데,

그건 현재 디버거 아래서 프로그램이 수행되고있는것만 가능한거 같네요.

조금더 사용해보며 알아봐야 할거 같습니다.

댓글 감사합니다.

shint의 이미지

하튼. 다른 파일을 불러오는건 잘 모르겠지만.

1. list로 파일 내용을 출력해주거나
2. s 로 그 함수 내부로 들어가는 방법등이
그와 비슷한 역할을 보여주는거 같습니다.

응용하면.
3. 원격 디버깅이 가능하다고 하니까요. 그 점도 가능해 보이고.
4. 콘솔을 두개 띄워서 확인해보는것도 가능해 보입니다.

- layout next로 어셈블리 화면을 같이 보여주는건 확인했습니다.
- frame이 비슷한걸지도 모른다는 생각이 들기도 하고... ㅡ_ㅡ;;;

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.