newlisp debugger
生活随笔
收集整理的这篇文章主要介绍了
newlisp debugger
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
写了很多newlsip程序,一直都是用println 来打印,查找问题。
但是随着程序越来越多,debug就变得越来越重要。今天在实现自己的TEA算法时,就需要调试newlips程序。
启动debugger很简单,只需要在newlisp会话中调用:
(trace true)
然后加载自己的lsp文件,调用函数,就可以进行调试了。
不过为了方便,还可以用(debug call-your-function)。
下面举个例子:
加入我有一个函数叫做cml-encrypt,用debug来调用它。
然后就会看到该函数的代码,并且提示你用s进入函数调试,n不进入当前调用的函数调试,c一直运行。
用# ... # 将当前正在求值的表达式包起来。
不足之处在于没有断点可以设置。
> (debug (cml-encrypt "12345678" "9000000000l1cm0c"))-----(define (cml-encrypt value key)#(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4))#)[-> 3 ] s|tep n|ext c|ont q|uit > s-----(define (cml-encrypt value key)(let ((v0 #(sum-bytes value 0 4)#) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))[-> 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 #(sum-bytes value 0 4)#) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 202[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 #(sum-bytes value 4 8)#) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 218[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 #(sum-bytes key 0 4)#) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 201[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 #(sum-bytes key 4 8)#) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 192[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 #(sum-bytes key 8 12)#) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 253[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 #(sum-bytes key 12 16)#)) (cml-tea v0 v1 k0 k1 k2 k3 k4)))RESULT: 355[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) #(cml-tea v0 v1 k0 k1 k2 k3 k4)#))RESULT: (84941945375 84941945848)[<- 4 ] s|tep n|ext c|ont q|uit > n-----(define (cml-encrypt value key)#(let ((v0 (sum-bytes value 0 4)) (v1 (sum-bytes value 4 8)) (k0 (sum-bytes key 0 4)) (k1 (sum-bytes key 4 8)) (k2 (sum-bytes key 8 12)) (k3 (sum-bytes key 12 16))) (cml-tea v0 v1 k0 k1 k2 k3 k4))#)RESULT: (84941945375 84941945848)[<- 3 ] s|tep n|ext c|ont q|uit > c (84941945375 84941945848)
转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/06/3003075.html
总结
以上是生活随笔为你收集整理的newlisp debugger的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 小小(小小说)
- 下一篇: jquery 控制模板菜单样式