backtrace()/ backtrace_symbols()に関数名を出力させる方法は?
Linux固有でbacktrace()ありbacktrace_symbols()、プログラムの呼び出しトレースを生成できます。ただし、これは関数アドレスのみを出力し、プログラムの名前は出力しません。関数名も出力させるにはどうすればよいですか?-gだけでなく、プログラムをコンパイルしてみました-ggdb。以下のテストケースはこれを出力するだけです: バックトレース------------ ./a.out()[0x8048616] ./a.out()[0x8048623] /lib/libc.so.6(__libc_start_main+0xf3)[0x4a937413] ./a.out()[0x8048421] ---------------------- 私は、また、関数名を表示するには最初の2つの項目をしたいと思いますfooし、main コード: #include <execinfo.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> static void full_write(int fd, const char *buf, size_t len) { while (len > 0) { ssize_t ret = write(fd, buf, len); if ((ret == -1) && (errno != EINTR)) break; buf …