2013-03-01 2 views
-3

Мне нужно распечатать стек вызовов в файле журнала в запущенной программе (на C), так как мне нужно проверить поток, Мне нужно отправить трассы в другую среду, а я не может отлаживаться. Есть ли способ сделать это в C.Нужно написать стек вызовов в запущенной программе в C

+2

Вы не предоставили здесь никакой информации, которая может быть использована, чтобы помочь, и ничего не задавала. Не зная, какую ОС и компилятор вы используете, информации нет. Как вы это сформулировали, ответ «Да, есть способ сделать это на C» или «Нет, нет возможности сделать это на C», это приемлемые ответы, которые, очевидно, не были бы полезны. Если вам нужна помощь здесь, вам нужно быть более конкретным о том, что вы просите, и предоставить дополнительную информацию о том, какую среду вы используете. В [FAQ] (http://stackoverflow.com/faq) есть несколько советов о том, как задавать лучшие вопросы. –

+0

[Возможный дубликат] (http://stackoverflow.com/q/2281739/968261). –

ответ

1

Если платформа является linux (и я верю в OSX тоже), вы можете использовать backtrace и backtrace_symbols для достижения желаемого.

Согласно разделу ноток backtrace

Имена символов могут быть недоступны без использования специального линкера опций. Для систем, использующих GNU-компоновщик, необходимо использовать опцию . Обратите внимание, что имена «статических» функций не отображаются и не будут доступны в обратном направлении.

Смежные вопросы