Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm startet nicht nicht (https://www.delphipraxis.net/18362-programm-startet-nicht-nicht.html)

HomerGER 17. Mär 2004 11:39


Programm startet nicht nicht
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo ich hab ein programm geschrieben
hier anzuschauen
wenn man das programm starten will, meldet er das ein fehler vorliegt und windows den fehler senden will
das macht er auch nicht immer wenn man 2-3 mal auf starten drückt startet das programm und läuft ganz normal
da passiert auch nicht auf allen rechnern ????!!!

ich hatte erst ein fehler drauf gleitkommadivision durch null
der kam von einer jedi function
cpu_speed := CPUID.FrequencyInfo;
aber nur bei intel rechner grösser 3 gh ????
hab ne andere function genommen und dann ging es
aber bei allen die die fehler hatten , kommt die meldung habe ein fehler festgestellt und will senden - nach ein paarmal klicken startet aber das programm ohne probleme

ich hab so das gefühl der fehler tritt nur bei intel rechnern mit ner grossen cpu auf
das programm läuft nur unter xp
auf allen anderen rechner amd, centrino 1gb bis schlag mich tot läuft alles
es ist bei 3 rechnern aufgetretten - alles waren intel und über 3 gh


helft bitte

APP 17. Mär 2004 12:42

Re: Programm startet nicht nicht
 
Hallo Homer,
zeig uns ein bisserl was von Deinem Code, damit wir helfen können.

BTW: Benutzt Du TRY/FINALLY Blöcke, ist der Fehler in der JEDI-Function, kann man die vielleicht Patchen...

NicoDE 17. Mär 2004 12:49

Re: Programm startet nicht nicht
 
Wenn das Image (Demo auf dem Server) seit dem Zeitpunkt nicht geändert wurde, dann passiert die Zugriffsverletzung in TObject.Free().
Das kann alles mögliche sein und/oder ein Folgefehler sein...
Code:
TObject.Free
004039FC       test   eax, eax
004039FE       jz     short @@ret
00403A00        mov    dl, 1
00403A02        mov    ecx, [eax]
00403A04        call   dword ptr [ecx-4]
00403A07 @@ret: retn
Rubrik Nützliches: http://help.madshi.net/madExcept.htm

HomerGER 17. Mär 2004 20:36

Re: Programm startet nicht nicht
 
@APP welchen teil des codes willst du sehen
den mit den Gleitkommafehler ? der ist weg benutze jetzt
so sieht der neue code aus

Code:
//##############################################################################
//##############################################################################
//System Kurz Info CPU Info
//##############################################################################
//##############################################################################
//******************************************************************************
//Global
//System Kurz Info Anzeigen
Procedure System_KurzInfo_CPU_Auslesen_SYKU();
var
cpu_info : TCpuInfo;
begin
    //CPU
    try
        cpu_info := CPUID;
        Haupt_Form.System_KurzInfo_Label14.Caption := cpu_info.Manufacturer;
        Haupt_Form.System_KurzInfo_Label15.Caption := cpu_info.CpuName;

        Haupt_Form.System_KurzInfo_Label16.Caption := Format('%f Mhz',[dwCPUClock]);

    except
        Haupt_Form.System_KurzInfo_Label14.Caption := Element_Lesen_GU('SKI111');;
        Haupt_Form.System_KurzInfo_Label15.Caption := Element_Lesen_GU('SKI121');;
        Haupt_Form.System_KurzInfo_Label16.Caption := Element_Lesen_GU('SKI131');;
    end;

    //Prozessor Bild laden
    if (Pos('AMD', cpu_info.Manufacturer) <> 0) then
    begin
        //AMD
        Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_AMD');
    end
    else if (Pos('Intel', cpu_info.Manufacturer) <> 0) then
    begin
        //Intel
        Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_Intel');
    end;

    //Speicher
    Haupt_Form.System_KurzInfo_Label24.Caption := Format('%f MB',[(GetTotalPhysicalMemory / 1048576)]);
    Haupt_Form.System_KurzInfo_Label25.Caption := Format('%f MB',[((GetTotalPhysicalMemory / 1048576) - (GetFreePhysicalMemory / 1048576))]);
    Haupt_Form.System_KurzInfo_Label26.Caption := Format('%f MB',[(GetFreePhysicalMemory / 1048576)]);

    //Win
    Haupt_Form.System_KurzInfo_Label34.Caption := g_win_version_s;

    //DirectX
    Haupt_Form.System_KurzInfo_Label44.Caption := dwGetDirectXName;
    Haupt_Form.System_KurzInfo_Label45.Caption := dwReadFullDirectXVersion;
end;

das war der alte code

Code:
//##############################################################################
//##############################################################################
//System Kurz Info CPU Info
//##############################################################################
//##############################################################################
//******************************************************************************
//Global
//System Kurz Info Anzeigen
Procedure System_KurzInfo_CPU_Auslesen_SYKU();
var
cpu_info : TCpuInfo;
cpu_speed : TFreqInfo;
begin
    //CPU Info auslesen
    cpu_info := CPUID;
    //CPU Speed auslesen
    cpu_speed := CPUID.FrequencyInfo;
    GetCpuSpeed(cpu_speed);
   
    //CPU
    Haupt_Form.System_KurzInfo_Label14.Caption := cpu_info.Manufacturer;
    Haupt_Form.System_KurzInfo_Label15.Caption := cpu_info.CpuName;
    Haupt_Form.System_KurzInfo_Label16.Caption := Format('%d Mhz',[cpu_speed.RawFreq]);
    //Prozessor Bild laden
    if (Pos('AMD', cpu_info.Manufacturer) <> 0) then
    begin
        //AMD
        Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_AMD');
    end
    else if (Pos('Intel', cpu_info.Manufacturer) <> 0) then
    begin
        //Intel
        Haupt_Form.System_KurzInfo_Image1.Picture.Icon := ImageShell_Icon_Lesen_GU('KurzInfo_Intel');
    end;

    //Speicher
    Haupt_Form.System_KurzInfo_Label24.Caption := Format('%f MB',[(GetTotalPhysicalMemory / 1048576)]);
    Haupt_Form.System_KurzInfo_Label25.Caption := Format('%f MB',[((GetTotalPhysicalMemory / 1048576) - (GetFreePhysicalMemory / 1048576))]);
    Haupt_Form.System_KurzInfo_Label26.Caption := Format('%f MB',[(GetFreePhysicalMemory / 1048576)]);

    //Win
    Haupt_Form.System_KurzInfo_Label34.Caption := g_win_version_s;

    //DirectX
    Haupt_Form.System_KurzInfo_Label44.Caption := dwGetDirectXName;
    Haupt_Form.System_KurzInfo_Label45.Caption := dwReadFullDirectXVersion;
end;

@ NicoDE
kannst du genauer werden ?
die fehlermeldung mit den "fehler senden" kommen noch vor der oncreate


könnte das programm jemand mal testen der ein intel cpu mit über 3 gh hat ?

NicoDE 17. Mär 2004 21:07

Re: Programm startet nicht nicht
 
Zitat:

Zitat von HomerGER
kannst du genauer werden?

Mein Beitrag bezog sich auf die Fehlermeldung 'Runtime error 216 at 00403A02'. Wenn der Fehler bei der Demo-Version auftrat, die ich heute heruntergeladen habe, dann wurde in TObject.Free() versucht TObject.FreeInstance() aufzurufen, obwohl Self (eax) kein TObject (mehr) war.
Sprich es wurde versucht ein nicht (mehr) vorhandenes Objekt freizugeben. Dies kann tausende Gründe haben und ist möglicherweise nur ein Folgefehler beim Versuch das Programm zu beenden.

Deswegen wären mehr Informationen nötig um das Problem auf einen bestimmten Bereich einzuschränken (am besten wäre ein Callstack, obwohl das bei der Aufrufkonvention register nicht gerade einfach ist...).

Ansonsten wirst Du nur mit den langwierigen Methoden vorwärts kommen (Remote-Debugging, 'kreatives' Auskommentieren, ...)
madExcept ist für nicht-kommerzielle Zwecke Lizenzkosten-frei und könnte wertvolle Hinweise bei einem Kunden mit dem Problem liefern.

HomerGER 17. Mär 2004 21:15

Re: Programm startet nicht nicht
 
@NicoDE
das hab ich schon gemacht - sprich
alles was ich in der oncreate mache
nur soweit komme ich nicht
der fehler "Fehler senden" kommt vorher - also in den augenblick wo man das programm start
was ich nur nicht verstehe - bisr jetzt - nur bei intel und rosser cpu
und ich weiß nicht wo ich da suchen soll

NicoDE 17. Mär 2004 21:24

Re: Programm startet nicht nicht
 
Zitat:

Zitat von HomerGER
der fehler "Fehler senden" kommt vorher - also in den augenblick wo man das programm start

Möglicherweise ein Problem in einem initialization-Abschnitt einer Unit/Komponente...
(von einem Fehler im RTL-Init-Code gehe ich erstmal nicht aus, obwohl es nicht ausgeschlossen ist)

HomerGER 17. Mär 2004 22:28

Re: Programm startet nicht nicht
 
aber warum nur bei bestimmten system - kann ich das irgendwie überprüfen?
habe fremdkomponenten benutzt
jedi jcl/jvcl
mxstatusbar
mxoutlookpro
delphiwoks
benutze d7 pro
das ist eigentlich alles

bei der JclSysInfo
Haupt_Form.System_KurzInfo_Label16.Caption := Format('%d Mhz',[cpu_speed.RawFreq]);
kamm der gleitkommafehler
hab ich durch Format('%f Mhz', [dwCPUClock] getauscht, dann war der fehler weg

NicoDE 18. Mär 2004 03:28

Re: Programm startet nicht nicht
 
Zitat:

Zitat von HomerGER
kann ich das irgendwie überprüfen?

Ich kann Dir nur madExcept empfehlen (wird unmittelbar nach System/SysInit/SysUtils initialisiert - sodass eine reale Chance besteht, an einen vernünftigen Call-Stack zu kommen).
Warum es nur bei Intel-Prozessoren auftritt, ist eine gute Frage... (synchrones Multithreading durch HTT?)

HomerGER 18. Mär 2004 09:05

Re: Programm startet nicht nicht
 
hab mir madExcept runtergeladen - leider ist mein englisch schlecht
weiß nicht wie ich es einbinden soll
kannst du da helfen - so das ich damit was anfangen kann ?

HomerGER 18. Mär 2004 14:00

Re: Programm startet nicht nicht
 
habe es hin bekommen das mad läuft
hab mal ein fehler simuliert
der bugreport kommt - nur wie lese ich ihn

habe ein gleitkommafehler eingebaut
nur wie komm ich mit den bugreport dahin :roll:


Code:
date/time        : 2004-03-18 15:01
computer name    : HAL9001
user name        : Homer
operating system : Windows XP Service Pack 1 build 2600
system language  : German
system up time   : 17 minutes 17 seconds
program up time  : 891 milliseconds
physical memory  : 227/511 MB (free/total)
free disk space  : (C:) 13,94 GB (L:) 7,93 GB
process id       : $ec0
executable       : homersxptuningtool.exe
exec. date/time  : 2004-03-18 15:00
version          : 3.0.0.48
madExcept version : 2.7
exception class  : EConvertError
exception message : Format '%f' ungültig oder nicht kompatibel mit Argument.

main thread ($ec8):
0042bba1 homersxptuningtool.exe SysUtils                ConvertErrorFmt
0042ccd0 homersxptuningtool.exe SysUtils                FormatError
0042cd9c homersxptuningtool.exe SysUtils                FormatBuf
0042d162 homersxptuningtool.exe SysUtils                FmtStr
77f42010 ntdll.dll                                      RtlAcquirePebLock
77f42029 ntdll.dll                                      RtlReleasePebLock
77d15f82 user32.dll                                     CallWindowProcA
0047e9e3 homersxptuningtool.exe Controls                TWinControl.DefaultHandler
00495a7a homersxptuningtool.exe Forms                   TCustomForm.DefaultHandler
00496bc2 homersxptuningtool.exe Forms                   TCustomForm.WMGetMinMaxInfo
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0047e8ff homersxptuningtool.exe Controls                TWinControl.WndProc
004945fd homersxptuningtool.exe Forms                   TCustomForm.WndProc
0047e57c homersxptuningtool.exe Controls                TWinControl.MainWndProc
00446318 homersxptuningtool.exe Classes                 StdWndProc
77fa4da3 ntdll.dll                                      KiUserCallbackDispatcher
77c431d8 GDI32.dll                                      GetTextExtentPointW
0047bf80 homersxptuningtool.exe Controls                TControl.WMWindowPosChanged
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0047b5e0 homersxptuningtool.exe Controls                TControl.DoConstrainedResize
0047b4d0 homersxptuningtool.exe Controls                TControl.DoCanResize
00479a72 homersxptuningtool.exe Controls                TControl.SetBounds
0046e10c homersxptuningtool.exe StdCtrls                TCustomLabel.AdjustBounds
0046e259 homersxptuningtool.exe StdCtrls                TCustomLabel.CMTextChanged
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0040436c homersxptuningtool.exe System                  @TryFinallyExit
0040226d homersxptuningtool.exe System                  SysGetMem
0049605b homersxptuningtool.exe Forms                   TCustomForm.Activate
00496cc0 homersxptuningtool.exe Forms                   TCustomForm.CMActivate
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0047e8ff homersxptuningtool.exe Controls                TWinControl.WndProc
004945fd homersxptuningtool.exe Forms                   TCustomForm.WndProc
0047e57c homersxptuningtool.exe Controls                TWinControl.MainWndProc
00446318 homersxptuningtool.exe Classes                 StdWndProc
77fa4da3 ntdll.dll                                      KiUserCallbackDispatcher
77d15f64 user32.dll                                     SendMessageA
00491bb4 homersxptuningtool.exe Forms                   SendFocusMessage
00495cd2 homersxptuningtool.exe Forms                   TCustomForm.SetFocusedControl
0047e80b homersxptuningtool.exe Controls                TWinControl.WndProc
004e66c0 homersxptuningtool.exe mxOutlookBarPro   13388 TmxOutlookBarPro.WndProc
0047e57c homersxptuningtool.exe Controls                TWinControl.MainWndProc
00446318 homersxptuningtool.exe Classes                 StdWndProc
77fa4da3 ntdll.dll                                      KiUserCallbackDispatcher
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0047e8ff homersxptuningtool.exe Controls                TWinControl.WndProc
004945fd homersxptuningtool.exe Forms                   TCustomForm.WndProc
0047b664 homersxptuningtool.exe Controls                TControl.Perform
0047e453 homersxptuningtool.exe Controls                TWinControl.UpdateShowing
0047e4be homersxptuningtool.exe Controls                TWinControl.UpdateControlState
0048024e homersxptuningtool.exe Controls                TWinControl.CMVisibleChanged
0047b894 homersxptuningtool.exe Controls                TControl.WndProc
0047e8ff homersxptuningtool.exe Controls                TWinControl.WndProc
004945fd homersxptuningtool.exe Forms                   TCustomForm.WndProc
0047b664 homersxptuningtool.exe Controls                TControl.Perform
0047a39b homersxptuningtool.exe Controls                TControl.SetVisible
004940f2 homersxptuningtool.exe Forms                   TCustomForm.SetVisible
0049ac88 homersxptuningtool.exe Forms                   TApplication.Run
005143bb homersxptuningtool.exe homersxptuningtool   17 EntryPoint

modules:
00400000 homersxptuningtool.exe 3.0.0.48      L:\1_Programm\Homers XP Tuning Tool
5b0f0000 uxtheme.dll           6.0.2800.1106 C:\WINDOWS\System32
61220000 MSH_ZWF.dll           4.10.851.0    C:\Programme\Microsoft Hardware\Mouse
71a00000 WS2HELP.dll           5.1.2600.0    C:\WINDOWS\System32
71a10000 WS2_32.dll            5.1.2600.0    C:\WINDOWS\System32
71a30000 wsock32.dll           5.1.2600.0    C:\WINDOWS\System32
72f70000 winspool.drv          5.1.2600.1106 C:\WINDOWS\System32
73250000 RICHED32.DLL          5.1.2600.0    C:\WINDOWS\System32
746a0000 MSCTF.dll             5.1.2600.1106 C:\WINDOWS\System32
74db0000 RICHED20.dll          5.30.23.1211  C:\WINDOWS\System32
76300000 WINSTA.dll            5.1.2600.1106 C:\WINDOWS\System32
76350000 comdlg32.dll          6.0.2800.1106 C:\WINDOWS\system32
76af0000 winmm.dll             5.1.2600.1106 C:\WINDOWS\System32
76f50000 Secur32.dll           5.1.2600.1106 C:\WINDOWS\System32
770f0000 oleaut32.dll          3.50.5016.0   C:\WINDOWS\system32
77180000 OLE32.DLL             5.1.2600.1243 C:\WINDOWS\system32
772a0000 SHLWAPI.dll           6.0.2800.1106 C:\WINDOWS\system32
773a0000 shell32.dll           6.0.2800.1106 C:\WINDOWS\system32
77bd0000 version.dll           5.1.2600.0    C:\WINDOWS\system32
77be0000 MSVCRT.DLL            7.0.2600.1106 C:\WINDOWS\system32
77c40000 GDI32.dll             5.1.2600.1106 C:\WINDOWS\system32
77d10000 user32.dll            5.1.2600.1106 C:\WINDOWS\system32
77da0000 ADVAPI32.dll          5.1.2600.1106 C:\WINDOWS\system32
77e40000 kernel32.dll          5.1.2600.1106 C:\WINDOWS\system32
77f40000 ntdll.dll             5.1.2600.1106 C:\WINDOWS\System32
78000000 RPCRT4.dll            5.1.2600.1230 C:\WINDOWS\system32
78090000 comctl32.dll          6.0.2800.1106 C:\WINDOWS\WinSxS\X86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805

disassembling:
[...]
0042bb92   push   edi
0042bb93   mov    ecx, ebx
0042bb95   mov    dl, 1
0042bb97   mov    eax, [$42b5bc]
0042bb9c  call   +$416f ($42fd10)      ; Exception.CreateResFmt
0042bba1 > call   -$278f6 ($4042b0)     ; @RaiseExcept
0042bba6   pop    edi
0042bba7   pop    esi
0042bba8   pop    ebx
0042bba9   ret

Ricane 24. Aug 2004 18:20

Re: Programm startet nicht nicht
 
Zitat:

Zitat von HomerGER
@APP welchen teil des codes willst du sehen
den mit den Gleitkommafehler ? der ist weg benutze jetzt
so sieht der neue code aus
[...]


Kannst du mir nochmal sagen, welche Jedi Kompo du dazu nutzt?!

PS: Habe Jedi 2.10 Installiert....... aber die Unit "JclSysInfo" findet er nicht......


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.

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