21. oktober 2002 - 23:01Der 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????
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
>>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...
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 ;)
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 :)
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! :)
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.
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å?
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 :)
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 ;)
Synes godt om
Ny brugerNybegynder
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.