AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DesignTime-Package debuggen?

Ein Thema von himitsu · begonnen am 31. Aug 2024 · letzter Beitrag vom 6. Sep 2024
Antwort Antwort
Kas Ob.

Registriert seit: 3. Sep 2023
412 Beiträge
 
#1

AW: DesignTime-Package debuggen?

  Alt 1. Sep 2024, 09:45
Yes one more thing, the IDE is in capable handle project group the right way, so don't forget to try with single opened project (your package) and don't use project group, see if that help.
Kas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#2

AW: DesignTime-Package debuggen?

  Alt 1. Sep 2024, 13:16
Das Problem ist schon seit einer Weile bekannt. Eine Lösung dafür gibt es aber offenbar noch nicht.

Regression - Delphi 12 - Unable to debug dynamically loaded packages
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#3

AW: DesignTime-Package debuggen?

  Alt 1. Sep 2024, 13:56
oh neeeee

Wir sind grade eben erst von XE auf 11 umgestiegen.
Und wir nutzen viele DLL und statische Packages.
Anfangs ging dort das Debuggen.
Aber inzwischen auch nicht mehr.
Und ganz pervers ist, dass ein Kollege es geschafft hat, dass immer mit DebugDCUs kompiliert wird. (die Option ist aus und ich vermute verpfuschte Suchpfade)
Auf dem Büro-Notebook konnte ich es so lösen, dass ich die DebugDCUs mit den ReleaseDCUs überschrieben hab, aber das ist auf dem Entwicklungs-Server keine Lösung.

Eigentlich sollte FinalBuilder (MSBuild) das selbe erzeugen, was auch in der IDE erzeugt wird,
aber anfangs ging es eben, aber nun auch wieder nicht. Manchmal geht es, wenn die Packages nochmal in der IDE kompiliert wird,
aber eben auch nur noch auf knapp 50% der Entwicklerrechner ... sonst lassen sich Packages nicht mehr debuggen.




Mein privates Ursprungsproblem wird immer schlimmer und ohne Debuggen weiß ich nur, dass es bis ins ShowModal geht und danach stochere ich im Dunklen.

Das Einfache geht alles,
Delphi-Quellcode:
MessageBox(0, '123', nil, 0);

ShowMessage('123');

UseLatestCommonDialogs := False;
ShowMessage('123');
aber verusche ich es selbst, dann friert die IDE ein.
Delphi-Quellcode:
OptionsDialog := {TOptionsDialog}TForm.Create(Self);
Result := OptionsDialog.ShowModal = mrOk;
Delphi-Quellcode:
OutputDebugString('ShowOptionsDialog:1');
OptionsDialog := {TSerialComPortOptionsDialog}TForm.Create(Self);
try
  OptionsDialog.Caption := 'TestTest123';
  OptionsDialog.Position := poScreenCenter;
  OptionsDialog.ShowInTaskBar := True;
  OutputDebugString('ShowOptionsDialog:2');
  Result := OptionsDialog.ShowModal = mrOk;
  OutputDebugString('ShowOptionsDialog:3');
finally
  OutputDebugString('ShowOptionsDialog:4');
  OptionsDialog.Free;
  OutputDebugString('ShowOptionsDialog:5');
end;
OutputDebugString('ShowOptionsDialog:6');
Dabei macht doch ShowMessage mit UseLatestCommonDialogs=False auch "bloß" TForm.Create + ShowModal?

Delphi-Quellcode:
procedure ShowMessage(const Msg: string);
  procedure ShowMessagePos(const Msg: string; X, Y: Integer);
    function MessageDlgPos(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer): Integer;
      function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string): Integer;
        {} if ... and UseLatestCommonDialogs then
        {} else
          {} Result := DoMessageDlgPosHelp(CreateMessageDialog(Msg, DlgType, Buttons), HelpCtx, X, Y, HelpFileName);
function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons): TForm;
  function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn): TForm;
    function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn; CustomButtonCaptions: array of string): TForm;
      {} Result := TMessageForm.CreateNew(Application);
function DoMessageDlgPosHelp(MessageDialog: TForm; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string): Integer;
  {} {with do.}Position := poScreenCenter;
  {} Result := {with do.}ShowModal;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Sep 2024 um 14:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#4

AW: DesignTime-Package debuggen?

  Alt 1. Sep 2024, 15:02
path means the working directory

and source comes from the currently opened project.

Original in a project group,
but the simple test without a project group.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#5

AW: DesignTime-Package debuggen?

  Alt 1. Sep 2024, 16:21
Zumindest ist jetzt ein Problem gelöst.

Man muß innerhalb der IDE unbedingt Application als Owner für Forms verwenden.
Ich hatte hier meine Komponente genommen, um darüber im OptionsDialog auf deren Einstellungen zuzugreifen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#6

AW: DesignTime-Package debuggen?

  Alt 4. Sep 2024, 04:30
Ich hatte hier meine Komponente genommen, um darüber im OptionsDialog auf deren Einstellungen zuzugreifen.
Ich verwende sonst eigentlich keine externen und vor allem keine "fremden" Owner,
wenn ICH ja die Speicherverwaltung übernehme, also vor allem beim Try-Finally, wo ich es selbst "gleich" wieder freigebe.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: DesignTime-Package debuggen?

  Alt 4. Sep 2024, 18:21
Ich compiliere im Debug Mode immer mit debug DCUs.

(nur, weil du das am Anfang gefragt hattest)

Wenn man aus Versehen irgendwo reinspringt, geht man halt mit Shift+F8 wieder raus. Das ist mir lieber als wenn ich im Debugger gar nicht in die RTL springen kann.
Thomas Mueller
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz