Avatar billede armena Nybegynder
01. februar 2004 - 07:08 Der er 12 kommentarer og
1 løsning

Fejl ved opstart af min program

Hej Ekspertere!

Jeg har virkelig, på det sidste halve år, prøvet og fixe en alvorlig fejl i mit program. Lykkedes desværre ikke for mig denne gang. Fejlen er at når man starter mit program (SmartNotes.exe) kommer den med fejl dialog som siger at programmet har en fejl og bliver afsluttet.

Der er dog alligevel én måde på at få programmet til at virke normalt. Får man fejlen, kan man højre klikke på SmartNotes.exe, gå til fanen Compatibility og derefter sætte et hak ved "Run this program in compatibility mode for" og vælge Win98 fra listen.
Men, bliver man nød til at gøre det, er mit program ikke så meget værd.

En anden ting er at jeg har bemærket at dette kun sker ved nogle computere, og derfor ikke ved alle.

Alt i alt, håber jeg bare at der er et klogt mennesker som har en idé om hvordan man kan rette denne her fejl.

Og til sidst har jeg et skærm dump af fejlen:
http://www.alawork.dk/Error.JPG

På forhånd tak.

Med venlig hilsen
Armen L.A.
EvoxSoft
Avatar billede armena Nybegynder
01. februar 2004 - 07:20 #1
Og undskyld for mine stavefejl. Emne titlen skulle selvfølge være: "Fejl ved opstart af mit program".
Avatar billede hrc Mester
01. februar 2004 - 08:39 #2
Hvor meget ram er der på de maskiner hvor programmet fejler? Er det altid de maskiner der fejler, eller kan de køre videre en gang i mellem? Det er en langskud, men hvad nu hvis en fejlende pointer peger på RAM oppe i den høje ende? Små maskiner = fejl, store = ingen fejl???


Hvad laver programmet når der startes? Har du initialiseret alle variable? I denne situation skal du ikke stole på at Delphi gør det for dig, derfor: MyPtr := nil osv.


Prøv at kommentere eventuelle "service"-funktioner ud af opstarten. Her tænker jeg på rutiner der kun laver kosmetik og placerer formen og sætter størrelsen. Prøv at barbere starten så meget ned, at fejlen forsvinder.


Går programmet aldrig ned når du kører det i Delphi?


Fejlen sker inden du får muligheden for at singlesteppe, ikke? Så er der det i initialization-delen på de linkede units at du skal lede. Du kan sætte debuggeren op til at steppe ind i disse. De units du har kontrol over (hvor du har koden) kan du evt modificere til at skrive i en log-fil.


Kan CPU-debugvinduet hjælpe dig? Blandt megen uforståelig assemblerkode står som regel også hvor den er kommet i programmet.


Hvad sker egentligt der når man vælger "Win98 compatibility mode"? Hvilke ting bliver lettere for et program at slippe af med? Det kan måske give dig et hint.


Prøv evt. at følge denne artikel:

  http://community.borland.com/article/0,1410,28344,00.html

Der hentes nogle gratis værktøjer, men jeg arbejdede engang med et også, som fangede en fejl der var ved at gøre mig skaldet - kan bare ikke huske navnet længere. Vil prøve at lede i de støvede hjørner i min langtidshukommelse.

.. MemorySleuth var navnet.

http://homepages.borland.com/jkaster/ccds/delphi7disk1/turbopower_software_company/memory_sleuth/
Avatar billede eht Nybegynder
01. februar 2004 - 10:20 #3
Der er et værktøj der hedder Eurekalog, som integrerer sig med sin exefil.
Det betyder at alle fejlmeddelelser bliver registreret i en tekstfil, med angivelse af hvor i kildekoden det går galt.
Man kan således nemt teste på forskellige maskiner og gør det nemmere at finde "sjældne" fejl. Hvis man har fået andre til at teste sit program, kan programmet sættes op til at sende en email med fejl-logfilen. Det virker virkelig godt og og har hjulpet mig med at finde nogle drilagtige fejl.

Det kan hentes på http://www.eurekalog.com/
Testversionen virker i 14 dage.
Ellers koster det 24$ - 49$ - 99$ alt efter versionen

Med venlig hilsen
Erik
Avatar billede doc404 Novice
01. februar 2004 - 17:57 #4
Det kunne være at dit program benytter nogle API'er der kun findes f.eks. sammen med Internet Explorer 5.x eller senere? IE opgraderer rigtig mange systemkomponenter i Windows.

Det kan meget nemt give sådanne resultater.

Er det Windows version bestemt mht. hvornår det virker eller ej?
Avatar billede armena Nybegynder
01. februar 2004 - 20:01 #5
Har prøvet EureKalog og den siger:
Exception...
  Date  : 02/01/2004 19:56:11
  Address: 0053D852
  Module : SmartNotes.exe
  Type  : EZeroDivide
  Message: Floating point division by zero.

Og ved details, nævner den:
JclSysInfo.pas
JclGraphUtils.pas
Avatar billede armena Nybegynder
03. februar 2004 - 20:32 #6
Eht, siden du gav mig programmet, kunne du måske forklare hvad det er der er galt? Håber du kan i hvert fald.
Avatar billede eht Nybegynder
03. februar 2004 - 21:38 #7
Hej Armena.

Jeg vil godt prøve at kigge lidt på det.
Men så må du sende mig logfilen, som 'Eurekalog har lavet. Den hedder det samme som dit program til 'fornavn'og 'elf' til 'efternavn'. Den ligger i samme mappe som dit program. Send den til et@12move.dk.

Fortæl mig også lige, om du kan åbne og se koden i de 2 'pas'-filer du nævner, eller om de er "lukket for offentligheden".

Med venlig hilsen
Erik

PS. Forvent ikke mirakler
Avatar billede eht Nybegynder
05. februar 2004 - 14:10 #8
Her følger lidt mere forklaring, som måske kan hjælpe dig.
Først lidt generelt om eurekalog:

Når du får en fejlmeddelelse med Eurekalog, får du vist 2 faneblade.
På det første får du nogle generelle oplysninger om fejlen.
Under "details" bliver oplysninger mere specifikke, med henvisnig til konkrete kodelinier i dit program.
Hvis fejlen opstår mens du har delphi og de konkrete uniter åbne, kan du bare klikke på henvisningerne, så springer cursoren automatisk over til den rigtigre kodelinie.

Hvis du afvikler programmet selvstændigt, må du selv finde de linier der henvises til. Det er vist Alt+G.

Fejlen bliver som sagt skrevet ned i en tekstfil, så man efterfølgende kan gå ned og kigge.

Jeg har kommenteret den logfil du sendte mig her:

www.mixware.dk/eurekalogfile.htm

Den bør læsen ved skærmopløsning min. 1024x768

//Erik
Avatar billede armena Nybegynder
16. februar 2004 - 01:22 #9
eht undskyld at jeg ikke har svaret, men der findes altså ingen fil der hedder: "The Smart Notes Project (MAY NOT BE DELETED!.pas" så jeg ved ikke helt hvor jeg skal rette.
"The Smart Notes Project (MAY NOT BE DELETED!" er mappen hvor projektet ligger i.
Avatar billede eht Nybegynder
16. februar 2004 - 08:29 #10
Prøv at åbne alle dine units i Delphi  og compiler dit program. Få derefter fejlen til at opstå.
Så går du ind under "details" i fejlmeddelelsen.
Der kan du klikke på de kodehenvisninger der er i teksten. hvorefter cursoren springer til det rigtige sted i den kode.
Avatar billede armena Nybegynder
16. februar 2004 - 19:19 #11
eht: som jeg har sagt, så får jeg ikke fejlen selv, så derfor kan jeg ikke prøve det du sagde.
Avatar billede eht Nybegynder
16. februar 2004 - 19:31 #12
Nej Ok, det er også rigtigt.
Jeg ved ikke hvad du skal gøre.
Desværre!!!!!!!!!

//Erik
Avatar billede armena Nybegynder
20. februar 2004 - 00:30 #13
eht, fejlen er rettet! :-) Tak til dig, som kom med EuroKalog og for www.mixware.dk/eurekalogfile.htm ;-)

Du for points!

MVH.
Armen L.A.
EvoxSoft
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester