|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
CCB2000
註冊時間: 2009-03-25 文章: 95
第 1 樓
|
發表於: 星期三 五月 09, 2012 9:02 am 文章主題: VFP 9.0 FIX - INVISIBLE BREAKPOINT |
|
|
Hello everyone:
Sometimes, vfp debugger stops at some invisible breakpoints.
There is a test program from Mr. Leonid Lepin (or Mr. meligo):
*PROC testbreakpoint
SET STEP OFF
SET ECHO OFF
SET DEBUG OFF
SET ESCAPE OFF
SET TALK OFF
SET SAFETY OFF
_SCREEN.VISIBLE=.T.
_SCREEN.WINDOWSTATE=2
? 'Phantom BreakPoint'
INSERT INTO tttt (f0,f1,f2,f3,f4,f5) VALUES (CHRTRAN(somestring,'\','/'),1,2,3,4,5)
RETURN
* END OF PROC TESTBREAKPOINT.
We can set a breakpoint at the line:
INSERT INTO tttt (f0,f1,f2,f3,f4,f5) VALUES (CHRTRAN(somestring,'\','/'),1,2,3,4,5)
But when we run the program, the debugger stops at the line:
? 'Phantom BreakPoint'
More details please refer to:
VFP 9.0 FIX - INVISIBLE BREAKPOINT
http://www.baiyujia.com/vfpdocuments/default.asp
source code download:
http://www.baiyujia.com/f_download.asp _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 2 樓
|
發表於: 星期一 五月 14, 2012 2:37 pm 文章主題: |
|
|
what's the error message? |
|
回頂端 |
|
|
CCB2000
註冊時間: 2009-03-25 文章: 95
第 3 樓
|
發表於: 星期二 五月 15, 2012 2:29 pm 文章主題: |
|
|
這是一個示例程序,
INSERT INTO tttt (f0,f1,f2,f3,f4,f5) VALUES (CHRTRAN(somestring,'\','/'),1,2,3,4,5)
會髮生錯誤,不用管它。
這個例子隻是說明:
如果vfp語句編譯后的p-code的長度是0x55時,會産生一個隱形斷點。
調試一個大的程序時,這些隱形斷點會對調試工作帶來很大的幹擾。 _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler |
|
回頂端 |
|
|
CCB2000
註冊時間: 2009-03-25 文章: 95
第 4 樓
|
發表於: 星期二 五月 15, 2012 2:32 pm 文章主題: |
|
|
另外,因為結构化代碼:
DO CASE ... ENDCASE
DO WHILE ... ENDDO
FOR EACH ... ENDFOR
FOR ... ENDFOR
IF ... ENDIF
SCAN ... ENDSCAN
TRY ... ENDTRY
編譯后的p-code格式比一般的VFP語句編譯后的p-code格式要複雜些,
上述代碼不能修复結构化代碼中的隱藏斷點。
如果結构化代碼中有隱藏斷點,可以手工修复:
IF "123456789012345678901234567890123456789012345678901234567890"="12345678"
可以修改為:
IF "123456789012345678901234567890123456789012345678901234567890"="12345678" .OR..F. && fix invisible breakpoint
只要修改后的代碼編譯成p-code的長度不是0x55就可以。
增加了checkbreakpoint.prg,可以檢查指定文件夾內的隱藏斷點。 _________________ VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|