我正在尝试捕获测试运行的概要文件数据。如标题所示,我在CentOS上运行.net core2.X。我能够生成* .map文件。浏览文件的内容,可以看到目标源代码已映射。
随后我运行:
dotnet test --no-build &
sudo perf record -p PID -g
在完成测试运行并运行“ sudo perf report -f”后,我看不到任何目标符号。
我知道dotnet test将测试负载分叉到几个子进程。
简而言之,我有两个问题:
我想念什么? perf是否跟踪正在观察的PID所创建的子过程?
谢谢!
修改1
我注意到的是,操作说明在共享对象列中显示* .map。我的跑步没有。没有博客指出必须给出路径。
默认情况下,perf是否在/ tmp中查找地图文件?
编辑2
通过使用以下命令启动测试运行:“ perf record dotnet test”,我已经能够使perf使用* .map文件(它们出现在Perf报告的共享对象列中)并生成合理的数量数据(相对于我之前捕获的极少量),但目标符号仍然缺失。它从相同的* .map而不是我的代码中获取牛顿软符号