線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2149
推到 Plurk!
推到 Facebook!

請問為啥無法停留在Break Point作Debug

尚未結案
dky
一般會員


發表:12
回覆:30
積分:13
註冊:2004-06-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-05-04 13:14:41 IP:220.128.xxx.xxx 訂閱
我一個專案中, 其他的Form都可以用Break Point逐步debug, 但有一個Form很怪, 突然就不行, 設了Break Point也不會停, 直接變綠色的無作用, 請問有人知道是啥問題嗎, 因為沒辦法用Break Point來Trace粉麻煩哩?
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-05-04 13:26:03 IP:210.64.xxx.xxx 訂閱
重新開一個新project,然後把unit copy 過去,然後加入,然後重新build一次看看。

bcb類似這樣就常常可以ok。我不知delphi裡有沒有一個叫tds檔,如果有,那就先刪了它再build,不行的話再開新project。

以上的前題是你已正確的把 bp 標在有作用的行上,但確無法跳入。換言之,若你的bp標的位置本來就是到不了,那就另當別論了。
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-05-05 09:21:08 IP:220.128.xxx.xxx 未訂閱
Hello, 不是任何一行都可以設中斷點,我試過在 begin 那一行設中斷點,就是不能設,一定要在 begin 下面,因為 begin 不算是程式碼。
===================引 用 dky 文 章===================
我一個專案中, 其他的Form都可以用Break Point逐步debug, 但有一個Form很怪, 突然就不行, 設了Break Point也不會停, 直接變綠色的無作用, 請問有人知道是啥問題嗎, 因為沒辦法用Break Point來Trace粉麻煩哩?
dky
一般會員


發表:12
回覆:30
積分:13
註冊:2004-06-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-05-05 10:22:04 IP:61.219.xxx.xxx 訂閱
感謝您的回答, 但是小弟我不會犯這種錯....^_^
同一Pas, compile後, 每一行可Trace的有效code, 在編輯區的最左邊會有一個藍色小點, 現在很怪的是, 有些竟然沒有, 即使有的, 設了Break Point了, 在執行也不會停在那行, 有些則是F9後, 原本紅色的BP列變綠色.
目前同一專案中, 只有一個pas有這狀況, 我想應該跟這pas列數較多沒關.....吧??(也不過近2萬行而已)
目前這pas無法trace粉頭痛哩, 請各位先輩或有遇過的朋友可以交流一下~~

另一位網友所提的, New一個專案再把pas加進去我試過了一樣狀況哩~~

===================引 用 cancer 文 章===================
Hello, 不是任何一行都可以設中斷點,我試過在 begin 那一行設中斷點,就是不能設,一定要在 begin 下面,因為 begin 不算是程式碼。
===================引 用 dky 文 章===================
我一個專案中, 其他的Form都可以用Break Point逐步debug, 但有一個Form很怪, 突然就不行, 設了Break Point也不會停, 直接變綠色的無作用, 請問有人知道是啥問題嗎, 因為沒辦法用Break Point來Trace粉麻煩哩?
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-05-05 10:56:31 IP:210.64.xxx.xxx 訂閱
你好,

那些"怪點"是否是呼叫外部的dll或lib裡的函式呢?

===================引 用 dky 文 章===================

在編輯區的最左邊會有一個藍色小點, 現在很怪的是, 有些竟然沒有, 即使有的, 設了Break Point了, 在執行也不會停在那行, 有些則是F9後, 原本紅色的BP列變綠色.

------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-05-05 10:57:05 IP:220.130.xxx.xxx 訂閱
In following screenshot  you will see 3 kinds of code that Delphi will not compile it into binary. There's also another kind of problem is, Delphi did not really compile the pas because of exists dcu file, you can delete all dcu file then re-compile again. 



===================引 用 dky 文 章===================
感謝您的回答, 但是小弟我不會犯這種錯....^_^
同一Pas, compile後, 每一行可Trace的有效code, 在編輯區的最左邊會有一個藍色小點, 現在很怪的是, 有些竟然沒有, 即使有的, 設了Break Point了, 在執行也不會停在那行, 有些則是F9後, 原本紅色的BP列變綠色.
目前同一專案中, 只有一個pas有這狀況, 我想應該跟這pas列數較多沒關.....吧??(也不過近2萬行而已)
目前這pas無法trace粉頭痛哩, 請各位先輩或有遇過的朋友可以交流一下~~

另一位網友所提的, New一個專案再把pas加進去我試過了一樣狀況哩~~

===================引 用 cancer 文 章===================
Hello, 不是任何一行都可以設中斷點,我試過在 begin 那一行設中斷點,就是不能設,一定要在 begin 下面,因為 begin 不算是程式碼。
===================引 用 dky 文 章===================
我一個專案中, 其他的Form都可以用Break Point逐步debug, 但有一個Form很怪, 突然就不行, 設了Break Point也不會停, 直接變綠色的無作用, 請問有人知道是啥問題嗎, 因為沒辦法用Break Point來Trace粉麻煩哩?
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-05-05 11:05:49 IP:210.64.xxx.xxx 訂閱
嗯,我原來的想法也是與coffee的想法一樣,所以請他開新專案在重build。(除非樓主把新專案還是開在同個目錄裡? 應該不會吧!)


------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
dky
一般會員


發表:12
回覆:30
積分:13
註冊:2004-06-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-05-05 14:29:03 IP:61.219.xxx.xxx 訂閱
您好, 我已在一個新資料夾中開新專案, 並將所需表單 (只copy .pas及.dfm)過去加入專案compile, 結果一樣.

在FormCreate中加了行BP測試, 有顯示紅色, 但執行時卻不會停留.如下.

procedure TfrmCustomer.FormCreate(Sender: TObject);
var
i: SmallInt;
begin
gsESN := BranchID '123456789012'; //FormatDateTime('HHMMSSZZZ')
lbESN.Caption := gsESN;
for i := 0 to 9 do
begin
gsCustData[i].CustID := '';
gsCustData[i].CustName := '';
gsCustData[i].BirthDay := '';
gsCustData[i].DocDateY := '';
gsCustData[i].DocDateM := '';
gsCustData[i].DocDateD := '';
gsCustData[i].DocLocation := '';
gsCustData[i].DocReason := '';
gsCustData[i].Address := '';
gsCustData[i].ImgF := '';
gsCustData[i].ImgR := '';
gsCustData[i].CustType := 0;
gsCustData[i].IDType := 0; //身份類型, 1:本人; 2:代理人
end;


另外, 在某按鈕Click事件中, 整段code竟然有的有藍色點可設BP(顯示紅色), 有些卻是綠色的.
if sbF4801.Tag < 1 then
begin
sbF4801.VertScrollBar.Position := pnlF4801_01.Height;
BitBtn68.Caption := '確 認';
sbF4801.Tag := 2;
Exit;
end;
if ckbIsExchangeBranch.Checked and (rg_F4801_02.ItemIndex = 0) then //lbHaveExchange.Visible then
begin
if MaskEdit18.Text = '00000000' then
begin
MaskEdit18.SetFocus;
MaskEdit18.SelectAll;
Exit;
end;
end;


===================引 用 aftcast 文 章===================
嗯,我原來的想法也是與coffee的想法一樣,所以請他開新專案在重build。(除非樓主把新專案還是開在同個目錄裡? 應該不會吧!)



aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-05-05 16:00:06 IP:210.64.xxx.xxx 訂閱
快不知該怎麼回了…  最後我依我記憶中的一些印象 : 「有些時候是因為在中斷前就發了一些異常,而造成根本不會進去」。
最後再試一招,那就是在不能中斷的更上層的地方去中斷,我delphi忘很多了,delphi裡應該也有個類似Application.CreatForm的地方,即project檔的開頭地方…從那裡一路追下去,應該可以得到一點點的線索


------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-05-05 19:35:23 IP:220.128.xxx.xxx 未訂閱
dky大大,我以前好像也有類似情形,可以設中斷點,但執行時會自動略過。
我是用 delphi 2006,怎麼都查不出來,最後出絕招,把原始碼全選複製,貼上記事本,觀察有沒有小小的四方塊亂碼,有可能是跳行字元 #13#10 少掉其中一個,如果有,就是不合法的字元,清空所有小方塊,有須要的話按 Enter 換行,最後全選複製,再貼回來原始檔裡面。

#13#10 少掉其中一個,就視為沒有跳行,五、六行的程式碼會視為一行,Trace 的時候,一下子就跳過五、六行。

原始碼記得先備份哦 !!!!!
編輯記錄
cancer 重新編輯於 2011-05-05 05:37:00, 註解 無‧
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#11 引用回覆 回覆 發表時間:2011-05-09 02:01:13 IP:203.73.xxx.xxx 訂閱
我使用 D2009 也曾發生過同樣的問題.

狀況是:

把一個 Form 叫出來, 在沒有進行任何修改的情況下設定中斷點,

結果 Trace 時無法停留, 直接跳過.

但如果插入個空白, 讓 Form 進入了有修改的狀態, 中斷點就會有效.

提供給你參考.

系統時間:2017-12-15 10:31:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!