ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Wie recoverable alert unter AOS4.1 debuggen? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
1 -2- | [ - Beitrag schreiben - ] |
01.08.2012, 16:31 Uhr Holger Posts: 8116 Nutzer |
Zitat:Gerne, E-Mail-Adresse hast Du noch? Zitat:Erst mal muss ich höchstwahrscheinlich eine aufsetzen, um überhaupt was durchlaufen zu lassen. Aber versuchen kann man’s ja. PS: hab nach der Thematik gegoogelt. Offenbar ist’s korrekt, aber noch unlogischer als zuerst angenommen. C++ ist schon eine absurde Sprache. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
01.08.2012, 16:39 Uhr Holger Posts: 8116 Nutzer |
Nur der Vollständigkeit halber: in C++ können, so widersinnig das auch ist, „pure virtual“ (also abstrakte) Methoden trotzdem eine Implementierung haben. Außerdem kann man selbst einen Destruktor als abstrakt deklarieren, dann muss es sogar eine Implementierung geben (wie gesagt, Unterklassen rufen ihn ja ohne wenn und aber auf). Der einzige Sinn dieser Konstruktion dient dazu, eine Klasse für denjenigen, der diese Abstrusität kennt (dem berühmt/berüchtigten C++ Programmierer, „der weiß, was er tut“) als abstrakt zu markieren. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
07.08.2012, 22:48 Uhr Reth Posts: 1858 Nutzer |
Zitat:Post ging vor ein paar Tagen raus. [ - Antworten - Zitieren - Direktlink - ] |
08.08.2012, 10:45 Uhr Holger Posts: 8116 Nutzer |
Zitat:Antwort auch. Nicht angekommen? -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
08.08.2012, 10:56 Uhr Reth Posts: 1858 Nutzer |
Zitat:Leider nein! Im Spamverdacht-Ordner lag auch nix! [ - Antworten - Zitieren - Direktlink - ] |
08.08.2012, 23:18 Uhr Reth Posts: 1858 Nutzer |
Also ich sitz mittlerweile schon Ewigkeiten vor dem Problem, seit Tagen an der selben Stelle. Bin mir auch ziemlich sicher, dass es irgendwie mit dem Gadget-Handling zusammenhängt. Aber egal, was ich auch probiere und umstelle, nix hilft, es wird höchstens schlimmer! [ - Antworten - Zitieren - Direktlink - ] |
01.09.2012, 10:28 Uhr Reth Posts: 1858 Nutzer |
Hallo nochmals zusammen, so hier nun für alle noch die Lösung des Problems, die mir Holger dankenswerter Weise nach Durchsicht meines Codes genannt hatte. Ursache des seltsamen Verhaltens war in meinem Fall die Tatsache, dass meine Gadgetobjekte (welche ich für die Verwendung von struct Gadget gebaut habe) vor dem Schließen des Fensters und dem Entfernen aller darin enthaltenen Elemente (wie z.B. Menüs etc.) schon ihre Gültigkeit verloren hatten (sie gingen out of scope). Und obwohl dem Anwender keine Möglichkeit mehr gegeben war, in diesem Zeitraum mit den Gadgets zu arbeiten kam das System damit wohl nicht klar. Nach der Umstellung des Code, so dass nun die Gadgets "länger leben" als das Fenster und erst nach dessen "Aufräumen" und Beenden selbst aufgeräumt und beendet werden tritt der Fehler nicht mehr auf. Fazit: Um sicher zu gehen, dass beim Beenden und Aufräumen von Intuition Fenstern alles klappt müssen Gadgets, die solchen Fenstern hinzu gefügt wurden entweder vor dem Schließen des Fensters von diesem entfernt werden (um dann selbst beendet/aufgeräumt werden zu können), oder sie dürfen erst nach dem Schließen des Fensters beendet/aufgeräumt werden. Falls das textuell nicht so gut nachvollziehbar ist, gebt Bescheid, dann versuch ich noch ein bisschen Pseudocode einzustellen. Was mich in diesem Zusammenhang noch interessieren würde: Sind denn solche Grundlagen über Intuition etc. irgendwo aufgeschrieben (am Besten zusammen gefasst als Best Practices)? Z.B. im Amiga Intern oder im Profi Know How? Könnte mir vorstellen, dass es hier noch mehr solche Sachen gibt, über die man schnell mal stolpert! Wäre es sinnvoll hier (oder auf ner anderen entsprechenden Seite) einen solchen Thread (am besten mit festem Format für die Postings) zu erstellen? Ciao [ - Antworten - Zitieren - Direktlink - ] |
02.09.2012, 16:26 Uhr Thore Posts: 2266 Nutzer |
Jo wie schon des öfteren erwähnt eben... [ - Antworten - Zitieren - Direktlink - ] |
02.09.2012, 21:56 Uhr Reth Posts: 1858 Nutzer |
@Thore: Äh, bin etwas verwirrt. Auf was beziehst Du Deine Antwort? Auf den Punkt mit dem festen Postingformat für "Fallstricke des AmigaOS"? (Kann sein, dass es schon mal erwähnt wurde. Oder gibt es da schon ne Sammlung irgendwo für?) [ - Antworten - Zitieren - Direktlink - ] |
02.09.2012, 22:48 Uhr thomas Posts: 7718 Nutzer |
Eigentlich sagt einem der gesunde Menschenverstand, dass man Resourcen nicht freigeben darf, solange sie noch in Benutzung sind. -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
03.09.2012, 12:51 Uhr Reth Posts: 1858 Nutzer |
@thomas: Hast ja recht! Davon abgesehen: Macht so eine Sammlung von "Fallstricken" usw. Sinn für AmigaOS? Was sagen die erfahrenen/erfahreneren Für-das-OS-Programmierer dazu? [ - Antworten - Zitieren - Direktlink - ] |
03.09.2012, 15:46 Uhr Thore Posts: 2266 Nutzer |
@thomas Genau so ist es und das versuch ich Reth seit einiger Zeit zu vermitteln Aber wie dem auch sei, ich finds sehr gut daß der Fehler nun gefunden ist und wir uns auf ein nettes Spiel freuen können > Macht so eine Sammlung von "Fallstricken" usw. Sinn für AmigaOS? Das ist nicht nur bei AmigaOS so sondern bei allen Systemen und bei allen Programmiersprachen. Nur crasht es eben beim Amiga gleich, wenn Du einen Fehler machst. Dafür ist dein Programm am Ende nur noch sauberer [ Dieser Beitrag wurde von Thore am 03.09.2012 um 15:49 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
03.09.2012, 19:32 Uhr Holger Posts: 8116 Nutzer |
Zitat:Die Schwierigkeit bestand ja nicht in dieser Trivialität, sondern darin, als nicht geübter C++ Programmierer zu erkennen, wo ein Automatismus zur Freigabe greift. Und da das Betriebssystem logischerweise erst bei der zweiten Freigabe einen Fehler meldet, ist auch das Einkreisen mittels Debuggen schwer. Zitat:Da dürfte in diesem Zusammenhang wohl nichts neues drin stehen. Amiga Intern und Profi Know How sind, abgesehen vom ARexx-Teil in letzterem, nur Übersetzungen der Amiga ROM Kernel Reference Manuals. Die wiederum sind in elektronischer Form auf der Amiga Developer CD 2.1 zu finden. Die zu haben, kann nicht schaden. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
03.09.2012, 19:52 Uhr Reth Posts: 1858 Nutzer |
@Holger: Habe beide Bücher und die Developer CD 2.1 (die RKRMs gibts ja auch schon online). Aber mal abgesehen von den Büchern wüsste ich nicht, wo in der Developer CD z.B. solche bzw. ähnliche Sachen drin stehen - sprich Abhängigkeiten etc. (mal abgesehen von den Teilen, die bei der Beschreibung der API-Funktionen enthalten sind). [ - Antworten - Zitieren - Direktlink - ] |
04.09.2012, 12:05 Uhr Holger Posts: 8116 Nutzer |
Zitat:Welche Abhängigkeit meinst Du denn? Dass man Gadgets nicht freigeben darf, solange das Fenster noch offen ist, versteht sich doch wohl von selbst, oder? -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
05.09.2012, 15:09 Uhr Thore Posts: 2266 Nutzer |
Schau dir die structs genauer an. diese verlinken zu weiteren Structs. So erkennst Du auch Abhängigkeiten. Kleines Beispiel: IntuiScreen->FirstWindow->FirstGadget Du musst eben die logische Reihenfolge beim Erstellen rückwärts wieder durchgehen, wenn Du aufräumst: Screen öffnen, Window öffnen, Gadgets anfügen.....= erstellen Gadgets entfernen, Window schließen, Screen schließen = aufräumen [ - Antworten - Zitieren - Direktlink - ] |
05.09.2012, 15:35 Uhr Holger Posts: 8116 Nutzer |
@Thore: Das halte ich aber für sehr weit hergeholt. Ich kann problemlos zuerst ein Fenster schließen und dann dessen Gadgets freigeben, aber ich kann nicht einen Screen schließen und danach das Fenster. So etwas liest Du nicht aus structs heraus. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
1 -2- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Wie recoverable alert unter AOS4.1 debuggen? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |