Avatar billede mindplay Nybegynder
21. oktober 2002 - 23:01 Der er 15 kommentarer og
1 løsning

debugging problem!

Jeg har gennem længere tid siddet med et kæmpe problem ... jeg får ikke at vide hvor fejlene opstår henne i koden, og det gør det på det nærmeste umuligt at rette noget som helst! :(

For eksempel får jeg flg. fejl: "Project Blah.EXE raised exception class EAccessViolation with message 'Access Violation at address 2000413A. Read of address 2000413A'. Process stopped. Use Step or Run to continue."

Hvis jeg så trykker OK, så hopper den over i IDE'en - og highlighter den sidste linie i min project source (Application.Run; end.)

Og det kan jeg jo ikke bruge til noget som helst?! :(

HVORFOR kan den ikke fortælle mig hvor den fordømte fejl ER henne??? Jeg er seriøst ved at blive SINDSSYG ... det kan ikke være rigtigt at jeg skal kigge 10.000 linier kode igennem for at finde fejlen?? ... hvordan skal man kunne rette noget som helst når man ikke kan få at vide hvor fejlene opstår??

Jeg har haft det samme problem med alle mine projekter i over et år nu ... siden Delphi 5 (tror jeg) holdt den op med at fortælle hvor fejlene er. Skal man slå det til eller hvad? Hvor????

HJÆLP!
Avatar billede cms Nybegynder
21. oktober 2002 - 23:19 #1
Prøv at køre et "stack trace" (Ctrl+F3 så vidt jeg lige husker) når du har trykket OK i Debugger Notification dialogen.
Avatar billede cms Nybegynder
21. oktober 2002 - 23:20 #2
Ellers vil jeg glædeligt kigge på din kode, hvis du kan overleve at andre kigger i den. MSN: cnt@cnt.dk
Avatar billede cms Nybegynder
21. oktober 2002 - 23:25 #3
Med hensyn til generelle exceptions der ikke bliver fanget det rigtige sted:

Du kan iøvrigt under Project Options -> Compiler sætte et par indstillinger.
Sæt "Code generation"->"Optimization off.
Sæt "Debugging"->Alle felter on.

og prøv evt. at frakrydse nogle af disse: "Tools->Debugger options->Language exceptions->Exception Types to ignore".

Noget helt andet er at det lyder som et 'oprydningsproblem' det du beskriver, idet den kommer på det tidspunkt. Fx at du i din kode Free'er en komponent, som stadig har en form eller Application som Owner. Når Application.Destroy kaldes vil den forsøge at Free'e sine komponenter og dette vil selvfølgelig skabe et problem, hvis du allerede har free'et den.
Løsning: RemoveControl og/eller RemoveComponent
Avatar billede cms Nybegynder
21. oktober 2002 - 23:26 #4
Iøvrigt:
"Tools->Debugger options->Language exceptions->Stop on Delphi exceptions" skal være hakket "on".
Avatar billede mindplay Nybegynder
22. oktober 2002 - 00:07 #5
Endelig! Nu viser den hvor fejlen er! ... tak for hjælpen - post lige et svar, så jeg kan lukke, så du får point? :)
Avatar billede cms Nybegynder
22. oktober 2002 - 00:11 #6
Okarj :) Så lidt
Avatar billede cms Nybegynder
22. oktober 2002 - 00:17 #7
Hvilket råd hjalp?
Avatar billede hermandsen Juniormester
22. oktober 2002 - 01:20 #8
>>cms
Sandsynligvis det hele!!! :D
Debugging er uundværligt, heldigt at Delphi selv fanger systaks fejl... Jeg læste en gang en artikel omkring hvordan man skyder sig selv i foden med forskellige programmerings-sprog...

Pascal
The compiler won't let you shoot yourself in the foot.
http://users.pandora.be/dirk.claessens2/howto.htm (fandt den lige på Google)
Avatar billede mindplay Nybegynder
22. oktober 2002 - 02:07 #9
cms: faktisk ingen af dem, men du fik mig ind i den rigtige menu: Tools -> Debugger Options ... på fanen "OS Exceptions" var "Access Violation" sat til "User Program" - den skal stå på "Debugger" hvis man vil have at debugger'en skal fange dem for én. Jeg har i øvrigt ikke fundet fejlen endnu, men nu har jeg da i det mindste en chance - jeg har sikkert skudt mine fødder fulde af huller i mine desperate forsøg på at lappe fejlen alle de forkerte steder ... det blir noget af et oprydningsarbejde ;)
Avatar billede cms Nybegynder
22. oktober 2002 - 19:35 #10
Loool :D Griner side!
Den mest brugervenlige compiler jeg har mødt er dog C#.. men det er vist en uendelig diskussion.
Mindplay: Jeps - kender det ALT for godt. Husk en anden gang at indsætte //$WORKAROUND eller //$TODO kommentarer. Takker for points :)
Avatar billede mindplay Nybegynder
22. oktober 2002 - 20:54 #11
C#, men det er jo ikke en compiler? er C# ikke sådan en java-agtig bytekode-fortolker? der findes da ikke nogen egentlig compiler til C# endnu, eller gør der??

Anyways, tak for hjælpen igen, jeg gennemgik hele min kode idag og fik alle de nye OG de gamle bugs vippet ud! :)
Avatar billede cms Nybegynder
22. oktober 2002 - 21:58 #12
Lækkert :D
Jow altså fortolker og fortolker. Den oversætter det til det bytekode lignende MSIL = Microsoft Intermediate Language, som af JIT-compileren oversættes til maskinkode. Så hastigheden er altså ligeså høj som compilede sprog. Der er blot indsat et mellemled.
Iøvrigt mente jeg også bare at jeg ikke kender andre 'compilere'/fortolkere af kode som giver så præcise og brugervenlige fejlmeddelelser.
Avatar billede cms Nybegynder
22. oktober 2002 - 21:59 #13
C# er et sprog iøvrigt - hverken en fortolker eller en compiler :o)
Avatar billede mindplay Nybegynder
22. oktober 2002 - 23:17 #14
Men så skal brugeren vel ha en fortolker/JIT-compiler installeret på sin maskine, inden han kan køre et C# program, eller? ... Hvor stor er sådan én så? ... Og hvad er idéen med at det skal være bytekode i første omgang? jeg mener, der findes vel kun fortolker/JIT-compiler til Windows, når nu det er et Microsoft system? eller kommer det til Mac/Linux også?
Avatar billede cms Nybegynder
22. oktober 2002 - 23:20 #15
Jeps det er så problemet med .Net-frameworket. Hvis jeg altså selv har forstået det rigtigt. Du må meget gerne stille spørgsmålet ovre i ASP.net-kategorien - så vil jeg med glæde lytte med :)
Avatar billede mindplay Nybegynder
22. oktober 2002 - 23:30 #16
Jeg er sådan set lidt ligeglad ;) - jeg har aldrig rigtig fået lært at bruge C++ i første omgang ... eller det vil sige, jeg kender sådan set sproget, men MFC er jo noget frygteligt klamp, i sammenligning med VCL, som jo er ganske rart at programmere med - VCL fås jo desværre kun til Borland C++ Builder, og Borland's C++ compiler er jo berømt for at producere verdens langsomste kode ;)
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