Daikon运行报错:dtrace文件对应程序点未在decls文件找到声明
报错原因
你的.dtrace文件中存在两个不同的程序点记录:
- 第一个程序点为
program.point:::POINT - 第二个程序点为
aprogram.point:::POINT
但你提供的.decls声明文件仅声明了aprogram.point:::POINT的变量结构,没有给program.point:::POINT提供对应的声明,因此Daikon读取到.dtrace第一行的程序点时找不到匹配的声明规则,直接抛出错误。
解决方法
你可以根据自己的实际需求二选一:
- 如果
program.point:::POINT是Perl脚本生成时产生的无效冗余记录,直接删除.dtrace文件中从第一行program.point:::POINT到下一个空行之前的所有内容,仅保留aprogram.point:::POINT对应的记录段即可,和现有声明文件完全匹配。 - 如果
program.point:::POINT是需要分析的有效程序点,就在.decls文件中新增一套对应的声明:复制现有aprogram.point:::POINT的整套声明规则,仅把程序点名称改为program.point:::POINT即可。
修改完成后重新执行原命令即可正常运行。
内容的提问来源于stack exchange,提问作者Xavier C
相关产品推荐
相关产品推荐

