VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

VFP 9.0 FIX - INVISIBLE BREAKPOINT

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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?
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
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
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作