考虑到与OCaml的编译的二进制文件编译的,有没有办法找出是否已经编有分析信息(通过使用ocamlopt -p
ocamlcp
/ocamloptp
,或gprof
特异性数据)?OCaml的二进制与分析信息
3
A
回答
2
如果你运行一个异形字节码文件ocamlobjinfo
,它显示了剖析作为进口接口之一:
$ ocamlcp -c my.ml
$ ocamlobjinfo my.cmo
File my.cmo
Unit name: My
Interfaces imported:
720848e0b508273805ef38d884a57618 Array
d7e1aaf95ba3578d33efe347aefa6c49 My
db723a1798b122e08919a2bfed062514 Pervasives
6a6248bae49664a0bb530dd3f0c15b79 Profiling
Uses unsafe features: no
$
更新
在我的系统(OS X)成型的本地可执行文件包含camlProfiling
和相关符号的定义:
$ ocamlopt -o my my.ml
$ nm my | grep camlProfiling
$ ocamloptp -o my my.ml
$ nm my | grep camlProfiling
000000010003e240 D _camlProfiling
000000010003e2e0 d _camlProfiling__1
000000010003e300 d _camlProfiling__2
000000010003e318 d _camlProfiling__3
000000010003e268 d _camlProfiling__4
000000010003e280 d _camlProfiling__5
000000010003e2a0 d _camlProfiling__6
000000010003e2c0 d _camlProfiling__7
0000000100003760 T _camlProfiling__code_begin
0000000100003ac7 T _camlProfiling__code_end
000000010003e238 D _camlProfiling__data_begin
000000010003e328 D _camlProfiling__data_end
00000001000038d0 T _camlProfiling__dump_counters_1014
0000000100003a40 T _camlProfiling__entry
000000010003e32c D _camlProfiling__frametable
0000000100003770 T _camlProfiling__fun_1046
0000000100003800 T _camlProfiling__fun_1048
0000000100003890 T _camlProfiling__incr_1010
看来很可能这个w在支持nm
的每个系统上都生病了。
0
注意:老谱标志(ocamlopt -p
)产生gprof
特定信息,且不会产生camlProfiling
的符号,杰弗里的答案。但使用ocamloptp
,他的解决方案工作。
如果你需要“旧”方法,如this website指出的,有些可靠的方式来确定是否二进制已编译gprof
支持是检查符号mcount
的存在:
nm <native binary> | grep mcount
只有-p
编译的程序应该包含mcount
符号:
U [email protected]@GLIBC_2.2.5
否则,该方案尚未使用-p
˚F编译落后。
相关问题
- 1. OCaml分支机构信息
- 2. 信息与OCaml的隐藏记录
- 3. 更新二进制文件信息
- 4. Android数据消息(二进制短信)
- 5. ocaml的二进制引用树查找
- 6. OCaml中的二进制搜索?
- 7. java二进制消息解析
- 8. 包括OCaml二进制文件
- 9. 在OCaml中打印二进制树
- 10. 基于二进制格式文档访问特定的二进制信息
- 11. Ocaml中从十进制到二进制的转换
- 12. 二进制计数器摊销分析
- 13. 二进制日志文件分析
- 14. 二进制分析研究工具
- 15. Rpart改进得分与信息增益
- 16. 如何分析十六进制和二进制文件?
- 17. 解析二进制到十进制
- 18. Beautifulsoup分析 - 详细信息
- 19. 使用二进制信号
- 20. 分割二进制
- 21. ocaml分析器和词法分析器
- 22. 的Python写的二进制数据MIME信息集
- 23. C++解析二进制plist
- 24. 二进制包解析
- 25. Haskell二进制解析
- 26. 如何分析与斜线的URL在用户信息部分
- 27. smpp二进制消息
- 28. 与二进制XML
- 29. OCaml:绘制二叉树
- 30. 二叉树vs二进制搜索树大哦分析
谢谢!确实适用于字节码版本。任何想法的本地二进制文件? – anol 2012-08-08 19:16:12
刚才我正在研究它,但是我没有'ocamloptp'(OCaml 3.12.1)。也许它在OCaml 4中是新的? – 2012-08-08 19:19:18
我刚刚检查过,是的,它是一个新工具,虽然文档没有说清楚它(如果您使用“增强的文档”来提供不同版本之间的差异,它变得很清楚:http://www.askra。德/软件/ ocaml的-DOC/4.00 /)。现在,我会尝试使用“ocamlopt -p”。 – anol 2012-08-08 19:22:30