디버깅 툴 관련 질문.

하하의 이미지

ltrace 관련 질문입니다.

아래는 ltrace를 관리자님께서 소개 해주신 글입니다

http://bbs.kldp.org/viewtopic.php?t=1045&highlight=ltrace

저는 요즘 쓰레드를 이용한 일종의 proxy 서버를 제작 중인데요

서버의 함수 콜 등등을 보려고 ltrace를 사용하려 합니다. 그런데..

서버를 띄우고 ltrace -p PID (-f) 이런 식으로 사용을 해보면..

항상 서버가 defunct 되거던요.

아래를 보시면

[astrokoo@testbed-t1 CLI]$ ltrace -p 11201(서버 PID)

accept(4, 0, 0, 0x40057bfc, 0x4005afac) = 5
printf("accept newsock %d\n", 5) = 17
pthread_create(0xbffff89c, 0xbffff860, 0x08048e20, 5, 0x4005afac <unfinished ...>
--- 0 (Real-time signal 0) ---
breakpointed at 0x4007e9b5 (?)
<... pthread_create resumed> ) = 0
select(5, 0xbffff8a0, 0, 0, 0

서버가 리슨을 하고 있다가 읽은게 들어오면 accept 하고 thread 생성

다시 select 그리고

한없이 멈춰있고 ( -f 옵션을 줘서 자식 또는 thread로 분기를 했는데도.. 마냥 그대로 이고) 더이상 진행이 안됩니다.

현재 프로세스를 ps -ef 해보면

astrokoo 11201 30504 0 21:09 pts/9 00:00:00 ./des_gw1.0 sec_client.conf
astrokoo 32197 11201 0 21:14 pts/9 00:00:00 [des_gw1.0 <defunct>]
astrokoo 726 5896 0 21:14 pts/14 00:00:00 grep des

이렇게 좀비가 생겨 있습니다....

man ltrace를 봐도 이에 대한 건 못찾겠구요.. ltrace 알아두면 유용한

툴인데 전 잘 안되네요... 어디에 문제가 있는건가요?

서버 자체는 ltrace를 걸지 않으면 정말 잘 돌아 가거던요.....

PS:
소개해주신 관리자님께서 답변 주시면 정말 고맙겠구요..

pynoos의 이미지

http://sourceforge.net/projects/ltrace/

ltrace 가 아직은 (1999년이 마지막 릴리즈입니다만..) linux thread를 제대로 지원하지 못하는 것 같습니다.

저도 뭐라고 답은 못하겠군요.

멈추는 부분은

strace ltrace ./<prog>

형태로 알아보면, 리눅스의 스케쥴러 쓰레드에서 멈춰있는 것을 확인할 수 있습니다.

kyong의 이미지

pynoos wrote:
http://sourceforge.net/projects/ltrace/

ltrace 가 아직은 (1999년이 마지막 릴리즈입니다만..) linux thread를 제대로 지원하지 못하는 것 같습니다.

http://packages.debian.org/cgi-bin/search_packages2.pl?keywords=ltrace&searchon=names&version=all&release=all

댓글 달기

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