Results 1 to 4 of 4

Thread: Stackdump bij error ?

  1. #1

    Stackdump bij error ?

    Ik heb een probleem met mijn Delphi applicatie: De meeste gebruikers en systemen hebben nergens last van, maar bij een aantal installaties gaat 'ergens' wat mis - bij sommige nu en dan, bij anderen altijd. De signalering beperkt zich helaas tot een algemene melding en een adres, maar daar schiet je niet veel mee op. Wat ik in die gevallen wil hebben is een indicatie op welke regel in welke source het probleem zich voordoet. In C code ben ik in daarvoor __LINE__ en __FILE__ tegen gekomen.
    Mooier zou een stackdump zijn, zodat ook duidelijk is hoe het programma op die plek gekomen is, maar de locatie alleen al is al een verbetering. Als er van 'standaard' Delphi componenten gebruik wordt gemaakt (Indy, SOAP en zo) zou dat ingebouwd moeten zijn (Raise betekent: Stackdump uitvoeren)
    Is er een methode om zoiets te forceren - ook voor 'aangeleverde' code?

  2. #2
    Member
    Join Date
    Mar 2003
    Location
    Netherlands
    Posts
    638
    Je kan madExcept installeren en meecompileren. Deze kan dat voor je regelen.
    Alex "leXTer" van der Vliet
    Delphi Programmer

    And may the source be with you.

  3. #3
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Of z'n, niet gratis, conculega Eurekalog

    Wanneer je het gegenereerde ELFje (een logbestandje) opent in de speciale viewer, dan kun
    je op de diverse regels in het call stack overzicht dubbelklikken en dan wordt deze regel in je
    code automatisch opgeroepen in de Delphi IDE.

    Ik zou niet meer zonder kunnen.

    Greetz,

    Peter.
    TMemoryLeak.Create(Nil);

  4. #4
    Ik gebruik JclDebug. Werkt vrij aardig en je kunt een stacktrace verzamelen in een string/stringlist en zodoende makkelijk in je eigen logfiles schrijven.

    Die logt standaard ook niet zo veel. De truc is om in je project options extra debug informatie mee te compileren. Die informatie zorgt ervoor dat bij zo'n adres teruggevonden kan worden door welke code het aangeroepen werd.
    1+1=b

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •