как написать свою собственную функцию, которая печатает обратно трассировку - PullRequest
0 голосов
/ 15 августа 2011

Как написать функцию C для печати обратной трассировки до вызова этой функции.Я не хочу использовать какую-либо библиотеку. Я хотел бы написать свой собственный код для этой работы.
Может кто-нибудь порадовать вкладом для достижения этой задачи?

Ответы [ 2 ]

3 голосов
/ 15 августа 2011

Вы не можете написать такую ​​функцию в переносимом C, и вы не можете написать ее, не зная конкретной платформы и соглашений о вызовах, используемых вашим компилятором. Поэтому в вашем вопросе (в настоящее время) отсутствуют все детали, на которые нужно было бы ответить.

Если вы хотите узнать, как работает backtrace (), вы можете изучить любое количество доступных реализаций.

Если вы хотите реализовать его с нуля (домашнее задание?), Изучите соглашение о вызовах для вашей платформы.

1 голос
/ 15 августа 2011

Нет никакого портативного способа сделать это, но gcc предоставляет наполовину чистый способ сделать это с __builtin_return_address и друзьями.

...