2009-01-21 19 views
1

每天至少4次我需要重新啓動Delphi才能使調試器再次停在斷點處。有時我可以通過在重建代碼之後附加到進程來欺騙它再次工作。但是大部分時間我都做不到,花了很多時間回去重新打開我想要的所有文件。爲什麼我需要重新啓動Delphi 7才能讓調試器正常工作

幾乎每次發生這種情況時,嘗試關閉Delphi時都會發生某種致命錯誤。有沒有解決這個問題?我有最新的Delphi 7,在WinXP上運行,內存充足。我辦公室裏的大多數其他人也會遇到這個問題。

+0

你有項目中的COM對象嗎? – 2009-01-22 16:51:49

+0

(什麼是> 10個字母的單詞不是?) – 2009-02-05 17:56:25

回答

2

當您正在調試時,是否正常退出程序,或者您是否使用IDE強制調試來停止/終止應用程序?我發現使用IDE強制關閉應用程序會導致問題一段時間後(通過重新啓動IDE解決),而從應用程序中退出程序不會導致這樣的問題。

警告:我的經驗是用Delphi 6

3

我們與德爾福7體驗與你相似:在IDE中相當穩定崩潰,抽象的錯誤,無效的指針引用,並在VCL庫異常。

它似乎取決於您已加載的項目的複雜性:我們的主項目是一個具有多個MDI表單和第三方庫的200,000多行程序。事實上,每當我們退出Delphi,我們都必須處理災難性的致命錯誤。我們非常善於使用任務管理器來追蹤Delphi32進程並殺死它 - 實際上是有時候脫身的唯一方法。

我們已經升級到德爾福2009,它具有更好的穩定性。我的感覺是,德爾福7有許多錯誤,你將不得不忍受他們,或升級。

1

我也曾在D7中得到過這個 - 但實際上只有一個特定的項目(無可否認非常大,許多形式和自制的定製組件)。其他項目(一些同樣大)很好。

我的感覺是它在某種程度上與使用從其他框架/窗體子類化的框架和/或窗體有關,您可以在IDE /調試器中打開後代窗體而不是祖先窗體。

因爲,就像你一樣,我覺得每天關閉並重新啓動IDE是一件非常痛苦的事情,我煞費苦心地爲該項目創建一個.DSK文件,該文件包含所有父項在其中形成東西,這樣當Delphi啓動該項目時,它會自動打開所有其他表單。一旦我確定我已經獲得了DSK的內容,我就只能讀取.DSK文件了......!

這意味着編輯會'忘記'我當時打開了哪些文件,但至少它會自動打開所有似乎使IDE'行爲'的東西。如果我打算在幾天內處理一些特定的文件,我只需手動將它們添加到.DSK文件。

我似乎記得德爾福會通過一些關於該文件是隻讀的投訴,但這種方法帶走了我們日常疼痛的80%左右。

然後我做的另一件事就是讓任務管理器加載,最小化,作爲我的系統啓動的一部分。至少這是ALT-TAB的一個簡單例子,它可能導致某些可能導致IDE死機的事情。 :-)

1

好的,繼續我在這個問題上的迴應,下面是一個示例DSK文件。我不能發表這個作爲我的迴應評論,否則我會。 :-)

對他們來說真的沒什麼了不起,他們非常直截了當,並且一目瞭然應該幫助你看到這一點。我實際上建議你只需加載Delphi,打開'自動保存桌面'選項(它位於環境或編輯器中,我忘了它),根據需要排列IDE(打開各種源文件等),然後保存/關閉該項目。您會在項目目錄中找到一個MyProject.dsk(etc)文件 - 只需將其設置爲只讀(或按照您在註釋中鏈接到的文章中的建議,並將其備份到您可以隨時帶來的位置只要你需要回來)。

無論如何,這裏有一個示例DSK,讓你知道你在玩什麼。它們只是INI類型的文本文件,如果你願意的話,你可以在記事本中對它們進行破解。 :-)

 
[Modules] 
Module0=C:\Projects\GUIPlay\src\du_FrameUtils.pas 
Module1=C:\Projects\GUIPlay\src\du_BaseDialogs.pas 
Module2=C:\Projects\GUIPlay\src\dm_DataMain.pas 
Module3=C:\Projects\GUIPlay\src\du_Main.pas 
Count=4 
EditWindowCount=1 

[C:\Projects\GUIPlay\src\du_FrameUtils.pas] 
ModuleType=SourceModule 
FormState=1 
FormOnTop=0 

[C:\Projects\GUIPlay\src\du_BaseDialogs.pas] 
ModuleType=SourceModule 
FormState=1 
FormOnTop=0 

[C:\Projects\GUIPlay\src\dm_DataMain.pas] 
ModuleType=SourceModule 
FormState=1 
FormOnTop=1 

[C:\Projects\GUIPlay\src\du_Main.pas] 
ModuleType=SourceModule 
FormState=1 
FormOnTop=1 

[C:\Program Files\Borland\Delphi7\Projects\ProjectGroup1.bpg] 
FormState=0 
FormOnTop=0 

[C:\Projects\GUIPlay\src\GUIPlay.dpr] 
FormState=0 
FormOnTop=0 

[C:\Projects\GUIPlay\src\GUIPlay.todo] 
FormState=0 
FormOnTop=0 

[EditWindow0] 
ViewCount=4 
CurrentView=2 
View0=0 
View1=1 
View2=2 
View3=3 
[email protected] 
[email protected] 
Create=1 
Visible=1 
State=0 
Left=212 
Top=157 
Width=1127 
Height=757 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=1119 
ClientHeight=723 
LeftPanelSize=140 
[email protected] 
LeftPanelData=000004000000000000000000000000000000000000000000000100000000000000000C000000436F64654578706C6F726572FFFFFFFF 
RightPanelSize=0 
BottomPanelSize=0 
[email protected] 
BottomPanelData=00000400010000000B0000004D6573736167655669657700000000000000000000000000000000000100000000000000000B0000004D65737361676556696577FFFFFFFF 

[View0] 
Module=C:\Projects\GUIPlay\src\du_FrameUtils.pas 
CursorX=1 
CursorY=1 
TopLine=1 
LeftCol=1 

[View1] 
Module=C:\Projects\GUIPlay\src\du_BaseDialogs.pas 
CursorX=1 
CursorY=1 
TopLine=1 
LeftCol=1 

[View2] 
Module=C:\Projects\GUIPlay\src\dm_DataMain.pas 
CursorX=1 
CursorY=1 
TopLine=1 
LeftCol=1 

[View3] 
Module=C:\Projects\GUIPlay\src\du_Main.pas 
CursorX=1 
CursorY=1 
TopLine=1 
LeftCol=1 

[Watches] 
Count=0 

[Breakpoints] 
Count=0 

[AddressBreakpoints] 
Count=0 

[Main Window] 
Create=1 
Visible=1 
State=2 
Left=0 
Top=0 
Width=1571 
Height=143 
MaxLeft=-1 
MaxTop=-1 
MaxWidth=1579 
MaxHeight=143 
ClientWidth=1571 
ClientHeight=109 

[ProjectManager] 
Create=1 
Visible=1 
State=0 
Left=1188 
Top=135 
Width=345 
Height=762 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=337 
ClientHeight=736 
TBDockHeight=305 
LRDockWidth=438 
Dockable=1 

[AlignmentPalette] 
Create=1 
Visible=0 
State=0 
Left=200 
Top=144 
Width=156 
Height=84 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=150 
ClientHeight=60 

[PropertyInspector] 
Create=1 
Visible=1 
State=0 
Left=3 
Top=147 
Width=272 
Height=783 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=264 
ClientHeight=757 
TBDockHeight=783 
LRDockWidth=272 
Dockable=1 
SplitPos=85 
ArrangeBy=Name 
SelectedItem=Name 
ExpandedItems= 
HiddenCategories= 

[ObjectTree] 
Create=1 
Visible=0 
State=0 
Left=0 
Top=142 
Width=190 
Height=314 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=182 
ClientHeight=288 
TBDockHeight=314 
LRDockWidth=190 
Dockable=1 

[[email protected]] 
Create=1 
Visible=1 
State=0 
Left=0 
Top=12 
Width=140 
Height=711 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=140 
ClientHeight=711 
TBDockHeight=305 
LRDockWidth=140 
Dockable=1 

[[email protected]] 
Create=1 
Visible=0 
State=0 
Left=12 
Top=0 
Width=1107 
Height=66 
MaxLeft=-1 
MaxTop=-1 
ClientWidth=1107 
ClientHeight=66 
TBDockHeight=66 
LRDockWidth=443 
Dockable=1 

[DockHosts] 
DockHostCount=0 

正如你所看到的,實際上它的文件重新打開,與窗戶的位置/大小的一些感覺和順序來打開文件一起列表。

祝你好運! :-)

相關問題