调试OCaml程序
时间:2011-06-09
来源:垂钓玄武
在手机上看
手机扫描阅读
在toplevel中,使用#trace命令
示例如下
这个用起来不太现实,我们除了教学,不会把程序写在toplevel里面,而是写在文件里面,编译,执行。于是有了ocamldebug.
它可以单步执行,插入断点,察看、修改环境中的值,和别的调试器一样。
但是,这个工具只运行在Unix上,Ubuntu这些都可以。
编译程序时加上-g选项,生成的.cmo文件含有调试必需的指令。只有bytecode compiler使用该选项。得到可执行文件后,进入debug模式,命令如下
ocamldebug [options ] executable [arguments ]
示例
建立两个文件
fact.ml
1 let fact n =
2 let rec fact_aux p q n =
3 if n = 0 then p
4 else fact_aux (p+q) p (n-1)
5 in
6 fact_aux 1 1 n;;
main.ml
1 let x = ref 4;;
2 let go () =
3 x := 5;
4 Fact.fact !x;;
5 Printf.printf "%d\n" (go ());;
编译
ocamlc -g *.ml
得到a.out执行文件。可以加上其他选项,一定要有-g并链接。
启动debug
ocamldebug a.out
help命令列出所有可用的命令
执行,追踪等,与用GDB调试C程序比较像,慢慢琢磨体会。
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28