gdb에서 에러난 곳의 소스코드 라인번호 알수 있는 방법이 없나

puaxx의 이미지

gdb에서 에러난 곳의 소스코드 라인번호 알수 있는 방법이 없나요?

r로 돌리면 SIGABORT가 뜨고 종료되는데 소스코드 몇번째에서 그런건지 알수가 없네요.

freezm7의 이미지

puaxx wrote:
gdb에서 에러난 곳의 소스코드 라인번호 알수 있는 방법이 없나요?

r로 돌리면 SIGABORT가 뜨고 종료되는데 소스코드 몇번째에서 그런건지 알수가 없네요.

where 아닌가요?

즐겁게 살아 볼까나~*

익명 사용자의 이미지

puaxx wrote:
gdb에서 에러난 곳의 소스코드 라인번호 알수 있는 방법이 없나요?

r로 돌리면 SIGABORT가 뜨고 종료되는데 소스코드 몇번째에서 그런건지 알수가 없네요.

(gdb) bt
#0  0x80483ea in wib (no1=8, no2=8) at eg1.c:7
#1  0x8048435 in main (argc=1, argv=0xbffff9c4) at eg1.c:21

bt로 call stack을 확인하시면 됩니다.
up , down 으로 call stack 을 이동하시면서 보고싶은 값들을 체크하시면 되구요.

위 예제에는 eg1.c의 21번째 라인에서 7번째 라인의 함수를 호출한것을 확인하실 수 있습니다.

http://www-128.ibm.com/developerworks/kr/library/l-gdb/

여기 간단한 gdb 사용법이 정리되어 있습니다.
참고 하세요.

puaxx의 이미지

두분다 감사드립니다.

bt해서 나오나 보네요...^^ 미처 못본거 같습니다..감사합니다.

nomoreid의 이미지

puaxx wrote:
두분다 감사드립니다.

bt해서 나오나 보네요...^^ 미처 못본거 같습니다..감사합니다.

아 위에 답변을 쓴 사람입니다. ^^
bt로 안나오는 경우도 있다는걸 깜빡했네요.

메모리를 날린 경우 bt등으로 안나올 수도 있습니다.

(gdb) bt
#0  0x004e87a2 in ?? ()
#1  0x00528955 in ?? ()
#2  0xfef9d560 in ?? ()
#3  0x00623ff4 in ?? ()
#4  0x00000000 in ?? ()

이런경우에는 메모리를 날려먹어 스택까지 날아간경우입니다.
큰 용량의 자료구조나 String등을 잘못 사용했을 경우 자주 발생합니다.
이럴때는 gdb로 잡기는 힘들고 printf나 file log를 남겨서 잡아야 합니다. oTL..

Never Ending 삽질.

puaxx의 이미지

네 감사합니다.66

댓글 달기

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