Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kein Raise unter 64bit? (https://www.delphipraxis.net/185802-kein-raise-unter-64bit.html)

OlliWW 8. Jul 2015 22:47

AW: Kein Raise unter 64bit?
 
Man ist als Developer ja nicht immer auf allen Feldern auf "Profi" Niveau. Zum Beispiel befinde ich mich bei der Konvertierung von 32 nach 64bit noch in der Anfangsphase.
Deswegen hatte ich gehofft wäre das für einen Profi vielleicht ein triviales Problem, der dann sowas sagt wie "achja, bei 64bit muss man auf dies und dies achten" und damit wäre das Problem gelößt.

Sir Rufo 8. Jul 2015 22:54

AW: Kein Raise unter 64bit?
 
Einen besseren Profi als Stevie wirst du kaum finden, der wühlt so richtig tief durch den Delphi-Dschungel.

Stevie sagt nein -> also gib uns ein Beispiel, sonst bleibt es beim Nein.

OlliWW 8. Jul 2015 23:01

AW: Kein Raise unter 64bit?
 
Die Software ist leider sehr umfangreich. Einfache Beispiele, die ich versucht habe, haben wunderbar funktioniert.

Ich werde es morgen mit VCL Source mal debuggen um zu sehen was nach dem Raise passiert oder mal TApplicationEvents ausprobieren.

In der Anwendung funktioniert es ja an manchen Stellen, nicht an allen. Dann hatte ich auch schon Threads (wir nutzen an der Stelle keine Threads, aber vielleicht macht ja irgendein Subprozess etwas) im Auge. Allerdings funktioniert es unter 32bit ja.

Ich werde berichten wenn ich etwas finde, das Problem verfolgt uns schon seit einem halben Jahr.

Stevie 8. Jul 2015 23:54

AW: Kein Raise unter 64bit?
 
Zitat:

Zitat von OlliWW (Beitrag 1308141)
schade ich dachte ich bekomme hier konstruktive Hilfe :roll:

Tut mir leid, dass ich außer zielführenden Fragen nichts konstruktives beisteuern kann. Meine :glaskugel: kann nicht alles :)

Nun ja, wir müssen schon gucken, dass wir alle Infos haben, um die Frage zu beantworten. Im Eingangspost schreibst du (Markierungen durch mich):

Zitat:

Zitat von OlliWW (Beitrag 1308141)
Unter 32bit wird die Anwendung an diesen Stellen, wie gewünscht, beendet. Unter 64bit wird die Procedur an dieser Stelle zwar abgebrochen, das Programm läuft allerdings weiter ohne auch nur eine Meldung anzuzeigen. Dies führt natürlich zu "lustigen" Folgefehlern.

Ich muss sagen, da hab ich heute Nachmittag neben meiner Arbeit wohl nicht genau gelesen, aber wat? Eine Exception beendet keine Anwendung. Höchstens der Code, der im Exceptfall ausgeführt wird (aber nen Halt im Exceptionfall wäre schon harter Tobak). Also nochma zum Mitschreiben: Du hast ein Application.OnException Handler, der im Falle einer Exception nicht triggert, richtig? Der Code raised auch eine Exception (im Debugger poppt dann immer son Dialog auf, hallo da war ne Exception, kommt der?) Wenn sich das Verhalten in einem einfachen Fall nicht nachstellen lässt ist ja generell ein Zeichen, dass es allgemein wohl funktioniert, nur in diesem speziellen Fall nicht. Hierfür kann es so einige Gründe haben - mal nach den üblichen Verdächtigen (z.b. Speicher irgendwo überschrieben) geschaut (Stichwort FastMM)? Sind Dinge wie EurekaLog, madExcept oder ähnliches involviert, die sich in die exception Chain hängen?

Sorry, wieder nur mehr Fragen, als Antworten. ;)

Zitat:

Zitat von Sir Rufo (Beitrag 1308148)
Einen besseren Profi als Stevie wirst du kaum finden, der wühlt so richtig tief durch den Delphi-Dschungel.

Das rahm ich mir nun ein 8-) Aber naja, ist wohl zu viel des Lobs, ich hab so meine Schwerpunkte, wo ich nen bisschen Plan von hab - beim Rest halt ich mich einfach meistens bedeckt, dann bemerkt man meine Ahnungslosigkeit nich so schnell :stupid:

Sir Rufo 9. Jul 2015 00:12

AW: Kein Raise unter 64bit?
 
@Stevie

Geht es uns nicht allen so ;)

@OlliWW

Ich an deiner Stelle würde in dem eigenen Code mal nach dem Wort "except" suchen, womöglich gibt es da solche exceptionphobe Konstrukte wie
Delphi-Quellcode:
try
  ...
except
end;
:wink: (womöglich per Compilerschalter nur bei x64 aktiv)

hoika 9. Jul 2015 05:47

AW: Kein Raise unter 64bit?
 
Hallo,

Ein Beispiel ist schwer, wie gesagt, rein oberflächlich funktioniert es ja. Baue ich ein Raise im OnClick ein (zum Beispiel) läuft der Handler. In einer verschachtelten Prozedur nicht.


Dann bitte ein Minimalbeispiel mit einer verschachtelten Prozedur.



Heiko

Bambini 9. Jul 2015 08:09

AW: Kein Raise unter 64bit?
 
Einen Unterschied gibt es zwischen 32 und 64 Bit Exceptions:

Unter 64 Bit gibt es ein Limit von geschachtelten Exception.
Bei mehr als 16 nested Exceptions gibt es ein Runtime error 231.

sh17 9. Jul 2015 09:03

AW: Kein Raise unter 64bit?
 
Zitat:

Zitat von Bambini (Beitrag 1308175)
Einen Unterschied gibt es zwischen 32 und 64 Bit Exceptions:

Unter 64 Bit gibt es ein Limit von geschachtelten Exception.
Bei mehr als 16 nested Exceptions gibt es ein Runtime error 231.

Cool, 16 bit quasi


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz