gprof 输出为空
gprof output is empty
在 Ubuntu 17.04 中对各种示例程序使用 gprof 2.28 和 gcc 6.3.0 我得到每个类别的空输出。如果我在一个示例程序中 运行 gprof -i 我得到:
1 histogram record
2 call-graph records
0 basic-block count records
我的编译看起来像这样:
cc -g -c sem_test.c -pg
cc -o sem_test sem_test.o -lpthread -pg
或者这样:
gcc -g3 -O0 -Wall -std=gnu99 -pg -fprofile-arcs -fno-inline -fno-reorder-functions sem_test.c -o sem_test -lpthread -pg
两者的结果相同。
我注意到我的 gmon.out 文件只有 687 字节,看起来很低。
这是一个 glibc bug/limitation:
如果您无法安装固定的 glibc,您可以 link 和 -no-pie
来禁用 PIE。您的工具链可能会自动启用 PIE。
在 Ubuntu 17.04 中对各种示例程序使用 gprof 2.28 和 gcc 6.3.0 我得到每个类别的空输出。如果我在一个示例程序中 运行 gprof -i 我得到:
1 histogram record
2 call-graph records
0 basic-block count records
我的编译看起来像这样:
cc -g -c sem_test.c -pg
cc -o sem_test sem_test.o -lpthread -pg
或者这样:
gcc -g3 -O0 -Wall -std=gnu99 -pg -fprofile-arcs -fno-inline -fno-reorder-functions sem_test.c -o sem_test -lpthread -pg
两者的结果相同。
我注意到我的 gmon.out 文件只有 687 字节,看起来很低。
这是一个 glibc bug/limitation:
如果您无法安装固定的 glibc,您可以 link 和 -no-pie
来禁用 PIE。您的工具链可能会自动启用 PIE。