Jstack эквивалент в C ++ - PullRequest
1 голос
/ 09 апреля 2009

jstack очень полезен для меня при проверке следов стека запущенных процессов.

Есть ли в C ++ инструмент для решения этой задачи. Я работаю с компиляторами Solaris / GCC.

На самом деле GDB / DBX может это сделать. Но мой процесс иногда зависает очень редко. Поэтому, когда это висит, я хочу знать, где это происходит не так. Просто отследите это в прямом эфире.

Спасибо Д. Л. Кумар

Ответы [ 4 ]

3 голосов
/ 09 апреля 2009

Арендатор ... на солярисе, не могу использовать GDB ... Я думаю, что вы ищете, "pstack" На моей системе Solaris 8 он расположен на

/usr/bin/pstack
usage:  pstack [-F] { pid | core } ...

и

man pstack

показывает хороший список связанных инструментов, которые вы можете найти очень полезными в диагностике.

1 голос
/ 09 апреля 2009

Учитывая, что вы работаете в Solaris и не хотите использовать GDB, DTrace кажется очевидным оставшимся решением.

Но вы, возможно, отказываетесь от GDB по неправильным причинам? Вы можете прикрепить GDB к существующим процессам зависания.

1 голос
/ 09 апреля 2009

Несколько лет назад я написал статью о сбросе стека в C / C ++ с Windows и Unix / Linux в DDJ. Может быть, это поможет вам:

См. http://www.ddj.com/architect/185300443

1 голос
/ 09 апреля 2009

Я считаю, что GDB также имеет такую ​​возможность, см. Документацию GDB для того же

...