Linux 如何使用perf从剥离的二进制文件中获取完整的stacktrace?

Linux 如何使用perf从剥离的二进制文件中获取完整的stacktrace?,linux,profiling,stack-trace,debug-symbols,perf,Linux,Profiling,Stack Trace,Debug Symbols,Perf,我正在尝试分析一个为嵌入式linux系统编写的进程。这是为了我们正在开发的产品。出于保密原因,进程名称被设置为“dummy”。有人建议我使用perf来分析dummy。因此,我尝试了一系列不同的perf命令,以便了解dummy中定义的内部函数在热区中是什么,以及我们如何将这些函数调用到libc和libglib中。下面是一个perf top的示例,当dummy以99%的CPU运行时。它以“perf top-G-p”的形式运行 虽然我有一些想法,但我不完全理解输出。下面是我的问题 最后一列是什么意思?

我正在尝试分析一个为嵌入式linux系统编写的进程。这是为了我们正在开发的产品。出于保密原因,进程名称被设置为“dummy”。有人建议我使用perf来分析dummy。因此,我尝试了一系列不同的perf命令,以便了解dummy中定义的内部函数在热区中是什么,以及我们如何将这些函数调用到libc和libglib中。下面是一个perf top的示例,当dummy以99%的CPU运行时。它以“perf top-G-p”的形式运行

虽然我有一些想法,但我不完全理解输出。下面是我的问题

  • 最后一列是什么意思?左边列出的不是二进制文件或库中调用的函数吗
  • 那么,这是否意味着第一行中的0x000547a2是进程libc中定义的符号/函数
  • 由于目标产品上的所有库和二进制文件都已剥离,因此我可以理解perf不能用实际函数名显示解析的stacktrace。但我在为libc单独构建的调试符号文件(与libc一起交付)中搜索了0x000547a2,但找不到符号。我能找到的最接近的是
  • 00054750 t\u int\u malloc

  • 有没有办法指定我必须执行的调试符号文件
    +  13.75%  libc-2.18.so             [.] 0x000547a2                                                                         
    +   7.52%  [kernel]                 [k] __do_softirq                                                                       
    +   6.97%  libglib-2.0.so.0.3600.4  [.] 0x00089d60                                                                         
    +   2.87%  libpthread-2.18.so       [.] 0x000085c4                                                                         
    +   2.71%  libpthread-2.18.so       [.] pthread_mutex_lock                                                                 
    +   2.62%  libc-2.18.so             [.] malloc                                                                             
    +   2.51%  [kernel]                 [k] vector_swi                                                                         
    +   1.87%  [kernel]                 [k] _raw_spin_unlock_irqrestore                                                        
    +   1.49%  [kernel]                 [k] __getnstimeofday                                                                   
    +   1.45%  dummy                    [.] chksum_crc32_int                                                                   
    +   1.34%  [kernel]                 [k] fget_light                                                                         
    +   1.29%  [kernel]                 [k] _raw_spin_unlock_bh                                                                
    +   1.28%  [kernel]                 [k] memcpy                                                                             
    +   1.24%  [adkNetD]                [k] adk_netd_clean_nca_queue         
    .
    .
    .