日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

newlisp debugger

發(fā)布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 newlisp debugger 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫了很多newlsip程序,一直都是用println 來打印,查找問題。

但是隨著程序越來越多,debug就變得越來越重要。今天在實現(xiàn)自己的TEA算法時,就需要調(diào)試newlips程序。

啟動debugger很簡單,只需要在newlisp會話中調(diào)用:

?

(trace true)

然后加載自己的lsp文件,調(diào)用函數(shù),就可以進行調(diào)試了。

?

不過為了方便,還可以用(debug call-your-function)。

下面舉個例子:

加入我有一個函數(shù)叫做cml-encrypt,用debug來調(diào)用它。

然后就會看到該函數(shù)的代碼,并且提示你用s進入函數(shù)調(diào)試,n不進入當前調(diào)用的函數(shù)調(diào)試,c一直運行。

用# ... # 將當前正在求值的表達式包起來。

不足之處在于沒有斷點可以設(shè)置。

?

> (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)


?

?

轉(zhuǎn)載于:https://www.cnblogs.com/jiangu66/archive/2013/04/06/3003075.html

總結(jié)

以上是生活随笔為你收集整理的newlisp debugger的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。