kostenloser Webspace werbefrei: lima-city


Debugger gesucht

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    nomis

    nomis hat kostenlosen Webspace.

    Hallo,

    in einem anderen Thread (http://www.lima-city.de/thread/portable-software) habe ja schon einmal mein derzeitiges Projekt (nomis.4lima.de) vorgestellt. Leider komme ich derzeit beim debuggen nicht mehr viel weiter, weil es praktisch keine Lauftzeitfehlermeldungen oder Assertions gibt (eine einzige habe ich: "Fehler beim Schreiben an Position...", wobei die in einer Funktion ausgelöst wird, die nicht von mir stammt (kernel.dll) und auch nur in Verbindung mit einem einzigen Programm auftritt, sodass ich mir keinen Reim daraus machen kann). Deshalb bräuchte ich ein kleines bisschen Hilfe von einem Debugging-erfahrenen Programmierer, der die Zeit dazu hat und dazu bereit ist, sich in ein Gemisch aus mittelmäßigem C und C++ Code einzulesen. Wer Interesse hat, kann sich ja schonmal alles herunterladen und mich dann kontaktieren.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s********4

    Gemisch aus C und C++.. sorry aber sowas lese ich gar nicht gerne :D. Man sollte sich schon entscheiden was man verwendet.

    Zum Thema:
    Microsoft Visual C++ hat wohl den besten Debugger auf Windows allgemein.
    Und bei so einem Zugriffsfehler kommt das sehr wohl von dir auch wenns erst im kernel crasht. Zeig doch mal ein wenig Code von der Stelle, eventuell sieht man es gleich woran es hapert.
    Generell würde ich aber mal die Zeiger überprüfen, sofern welche vorhanden sind.
    Aber mich jetzt durch ein ganzes Projekt wühlen, ist nicht so mein Ding, auch wenn ich gerne helfe.
  4. Autor dieses Themas

    nomis

    nomis hat kostenlosen Webspace.

    Gemisch aus C und C++.. sorry aber sowas lese ich gar nicht gerne

    Zu meiner Verteidigung muss ich sagen, dass ich zu einem großen Teil unschuldig daran bin. Da ich in dem Projekt ja eigene registry(ähnliche) Funktionilität, welche ich selbst in c++ implementiert habe, weil ich das eigentlich lieber mag, mit der WinAPI-Schnittstelle (und den microsoft eigenen unschönen c parametern) verknüpfen muss, um die microsoft eigenen Registryfunktionen zu ersetzen, wurde ich zu c gezwungen, ohne dass ich es wollte. (gut zugegeben: ich hätte es komplett in c machen können, fand ich aber zu kompliziert).
    Für den Quellcode muss ich hierhin verweisen: http://dl.dropbox.com/u/19378051/Portablizer.zip (ist das ganze Projekt), weil ich ja leider nicht weiß, welche Stelle des Programms das Problem ist (wird ausgelöst in kernel.dll ReleaseMutex(), wobei ich direkt garkeine mutex verwende, wahrscheinlich indirekt über wxWidgets), und alles zusammen zu viel Code ist, um ihn hier zu posten...
    Wegen der Zeiger habe ich schon überlegt (ein paar hat man ja immer), aber finden kann ich leider nichts.
    Dass du dich nicht durchwühlen willst, ist verständlich. Danke trotzdem für deinen Hinweis.
  5. s********4

    Naja, es ist ein Multithreading-Problem allem anschein nach. wxWidgets verwendet das ja auch intern. Kannst du das Problem gar nicht eingrenzen? Wann genau tritt das auf? Zufällig?

    Zur Registry:
    Schau dir mal wxRegistryKey etc an. Da gibts eigentlich eine vorgefertigte Lösung von wxWidgets.
  6. Hallo nomis,

    Dein Projekt ist ziemlich umfangreich und da jetzt herauszulesen, wo evtl. ein Fehler sein könnte ist wohl sehr aufwändig.
    Falls das Problem auch in der Debugversion auftritt, dann solltest Du bei der Fehlermeldung eigentlich auch die Möglichkeit zum debuggen angeboten bekommen. Wenn Du dort auf 'Debuggen' bzw. 'Unterbrechen' klickst, dann sollte sich die IDE öffnen (sofern Du das Programm nicht sowieso innerhalb der IDE ausführst) und ein Pfeilchen auf die Fehlerposition verweisen. Wahrscheinlich ist das ein Assembler-Listing der Kernel.dll. Wenn Du dort bist, dann kannst Du das Call-Stack-Fenster öffnen (sofern es nicht sowieso angezeigt wird). In diesem Fenster kannst Du nachschauen, von wo aus die Funktion der kernel.dll aufgerufen wird. Damit solltest Du zumindest einen Anhaltspunkt bekommen können wo der Fehler steckt. Denn eigentlich muss das Problem in einem der übergebenen Parameter sein.
  7. Autor dieses Themas

    nomis

    nomis hat kostenlosen Webspace.

    Tja, den Callstack kenne ich bereits, leider gibt der aber nichts her.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!