Unix의 DBX vs Linux의 GDB

khk의 이미지

DBX와 GDB에 대해서 분석할 일이 생겨서 이렇게 도움을 구합니다.

Multi-thread 프로그램을 디버깅할 때
DBX와 GDB의 기능(성능)상에 어떤 차이가 있는지에 대해
님들의 의견을 듣고 싶습니다.

언뜻 듣기로는 GDB가 DBX에 비해 기능이 확실히 떨어진다고 하는데
어떤 부분에서 그런것인지...?

Multi-thread debugging 측면에서 이 둘의 기능적 제약사항 따위에
대한 문서가 있다면 더더욱 좋겠지만...
이 둘을 모두 써보신 분이 계시다면
그 차이점에 대해 짧게나마 의견을 듣고 싶습니다.

김성진의 이미지

저도 체계적으로 dbx와 gdb의 장단점을 분석한 적이 없어서

경험을 토대로 말씀드리겠습니다.

dbx는 제가 써본바로는 sun과 aix에서 제공되는 기본 디버거이고

나머지 플랫폼들에서는 original gdb 혹은

해당 벤더에 의해 변형된 gdb를 제공하고 있었습니다.

얼마전까지만 해도 리눅스에서 gdb가 thread의 디버깅을 제공하지 않아서

패치를 찾아서 적용한 후에 사용해야 했던 점이 기억나는군요.

그러나, 쓰레드에 대한 정보를 전체적으로 본다거나 하는

쓰레드와 관련된 기능은 아직 부실하다는 생각을 지울 수 없습니다.

반면 SUN에서의 dbx는 환상적이라고 할 만큼 디버깅이 편합니다.

특히, mutux 관련 holder와 waiter에 대한 관계를 쉽게 찾는다거나
(이게 gdb에도 있는지는 확인을 못했습니다만)

특정 메모리에 대한 read 혹은 write에 대한 break point를

동적으로 잡을 수 있는 부분에 대해서는 대단히 만족을 하지요.

AIX의 경우 dbx를 제공합니다만, sun과는 사용법이나

기능이 서로 달라서 같은 것이라고 보기는 조금 힘든면이 있습니다.

결론적으로 gdb는 아직 쓰레드 환경에 대한 지원이 비교적으로

미진하다는 생각합니다. 곧 나아지겠지요.

참고로 저는 쓰레드 응용프로그램 개발은 모두 SUN으로 하고

피치못할 사정이 생기면(포팅?) 어쩔 수 없이 해당 플랫폼에서

작업을 합니다.

특이하게 HP의 경우는 자체적으로 배포하는 것으로 보이는 gdb가

가장 쓸만했습니다. ^^

좋은 하루 되십시요.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

cjy1126의 이미지

이거랑 상관없을지도 모르지만...

저희 강사님 말씀으로는... 리눅스가 쓰레드를 완벽히 지원못한다고 하시더군요.

커널모드 쓰레드로 돌려도 유저모드 쓰레드로 실행된다네요.

유저모드는 당연히 유저모드로...

아직은 리눅스가 완벽하지 않은가봅니다.

eungkyu의 이미지

cjy1126 wrote:
이거랑 상관없을지도 모르지만...

저희 강사님 말씀으로는... 리눅스가 쓰레드를 완벽히 지원못한다고 하시더군요.

커널모드 쓰레드로 돌려도 유저모드 쓰레드로 실행된다네요.

유저모드는 당연히 유저모드로...

아직은 리눅스가 완벽하지 않은가봅니다.

이건 아닌거 같은데 -_-
리눅스 커널모드 쓰레드 지원합니다 -_-
쓰레드에 따로 pid매겨주는 유저모드 쓰레드는 들은 일이 없네요...

댓글 달기

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