Ergebnis 1 bis 15 von 15

Thema: Wie debugge ich mit Hilfe eines Savegames die CvGamcoreDLL.dll?!?!?

  1. #1
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650

    Wie debugge ich mit Hilfe eines Savegames die CvGamcoreDLL.dll?!?!?

    Einige von euch werden es vielleicht wissen, oder auch nicht, hab nen Mod gemoddet...der läuft auch bei anderen völlig unproblematisch...nur bei mir hängt er sich ab und zu auf. Da ich, meiner Meinung nach, ein grafischen Problem ausgeschlossen habe, und die von mir implementierten Einheiten und Graphiken nicht schuld sein können, was aber nicht heißt das es vielleicht doch ist ist, möchte ich nun mal den Kern der Sache erforschen. Denn die Fehlermeldung sagt mir schließlich das ein Problem in der CvGameCoreDLL.dll festgestellt wurde.

    Nun habe ich hier mal alles durchforstetet nach besten Gewissen, habe zwar einen Beschreibung gefunden die erklärt wie man eine DLL erzeugt, aber nicht wie man sie auf Fehler überprüft mittels eines Savegame in dem der Fehler auf tritt. Und genau das suche ich! Bei den Fanatics habe ich zwar einiges gefunden...aber natürlich alles auf englisch, was nicht weiter schlimm wäre, wenn es ne passende Erklärung wäre...zumal man dort mit Programmen gearbeitet hatdie es teilweise nur noch schwer zu kriegen sind.

    Habe mir bis jetzt Nur MS Visual Studio 2008 Express Edition runtergeladen...die Makefile...und die 3 Bibliotheksdateien.

    Brauch ich trotzdem Microsoft Visual C++ Toolkit 2003 wenn ich MS VS 2008 habe??? Oder ist es vielleicht besser als mit den "alten" Programmen zu machen die bei den Fanatics empfohlen werden.

    So...und nun brauche in natürlich eine Idioten sichere Klick für Klick Beschreibung wie man den ganzen Kram macht, ne Debugg DLL erstellen sie mit dem Savegame zu "koppeln" und so on, habe keine Lust mehr im Dunkeln bezüglich des Fehlers zu tappen. Hoffe das ich wenigstens einen Hinweise durch das zeilenweise debuggen erhalte
    Geändert von Monaldinio (14. September 2010 um 11:02 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  2. #2
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Diese Anleitung ist die, die allgemein benutzt wird, und hat auch bei mir funktioniert.

    Und das Toolkit ist nicht das selbe wie Visual Studio -> ja, brauchst du.
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  3. #3
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    So, alles ist runtergeladen und eingerichtet, nun kommt schon meine erste doofe Frage: WELCHEN Ornder CvGameCoreDLL.dll muss ich benutzen...den von Bts...oder den vom Planetfall?!?! Um Planetfall mit hilfe des Savgames zu debuggen?! Ich geh mal schwer vom Ordner im Planetfall Mod aus...
    Ich frag aber lieber nochmal.
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  4. #4
    Registrierter Benutzer Avatar von Lord Tirian
    Registriert seit
    23.02.08
    Ort
    Liverpool, UK
    Beiträge
    36
    Jepp, der Quellcode vom Planetfall-Order. Würde aber empfehlen, wie in der Anleitung empfohlen, vorher einmal eine nicht-Debug DLL zu kompilieren, nur um zu gucken ob das alles funzt.

    Viel Glück und viel Erfolg!

    Grüße, LT.

  5. #5
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    So...habe erstmal versucht selber eine CvGameCoreDLL.dell zu compilieren.


    Habe alles so gemacht wie in der Anleitung...aber habe diese Fehlermeldung bekommen.


    c:\Dokumente und Einstellungen\Mo\Eigene Dateien\ARBEITSORDNER Debuggen\CvGameCoreDLL\CvGameCoreDLL.h|162|fatal error C1083: Cannot open include file: 'boost/python/list.hpp': No such file or directory|
    ||=== Build finished: 1 errors, 0 warnings ===|

    Bin dann bei BTS in den CvGameCoreDLL Ordner...habe dort auch diesen Ordner mit den Dateien gefunden...habe diesen Ordner in meinen Arbeitsordner CvGameCoreDLL eingefügt...funtzt trotdem nicht.
    Geändert von Monaldinio (15. September 2010 um 17:53 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  6. #6
    Registrierter Benutzer Avatar von Lord Tirian
    Registriert seit
    23.02.08
    Ort
    Liverpool, UK
    Beiträge
    36
    Zitat Zitat von Monaldinio Beitrag anzeigen
    Bin dann bei BTS in den CvGameCoreDLL Ordner...habe dort auch diesen Ordner mit den Dateien gefunden...habe diesen Ordner in meinen Arbeitsordner CvGameCoreDLL eingefügt...funtzt trotdem nicht.
    Probier mal eine normale, unmodifizierte CvGameCore.dll zu kompilieren, also die für's Standard Beyond the Sword (natürlich in einem neuen Verzeichnis, nicht die Original-Dateien bearbeiten/verändern ).

    Sobald du das geschafft hast, kopier den Inhalt vom Planetfall-DLL Verzeichnis drüber (so dass die ganzen Quellcode-Dateien mit denen von Planetfall ersetzt werden) und mache dann in Visual Studio einen vollen Rebuild.

    Der Rebuild ist wichtig, da der Planetfall-Quellcode veränderte Header-Dateien hat (die .h-Dateien); nur mit einem vollen Rebuild checkt der Linker die.

    EDIT: Sorry, ich ging davon aus, dass du beim letzten Post schon erfolgreich eine BtS-DLL probiert hast, wie in der Anleitung; der Order von Planetfall beinhaltet, falls ich mich recht erinnere, nur die *veränderten* Dateien.

    Grüße, LT.

  7. #7
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Jööööööööööö!!!!! Monaldinio hat seine erste DvGameCoreDLL.dll compiliert! Suuuuper...und das mit den Dateien des Planetfall DvGameCoreDLL-Ordner!


    LORD...was meinst du mit völlig neuen Rebuild!

    Habe die Dateien des Planefall DvGameCoreDLL-Ordner zusammen mit den Dateien des BtS-Boost-1.32.0 und Python24 Ordner compiliert! Oder ist der gemeinte Rebuild noch ein bischen anders!

    Im Übrigen ist meine DvGameCoreDLL.dll etwas größer als die Original Planetfall-DvGameCoreDLL.dll...6.94MB... Aber ich habe sie auch mit CodeBlock 8.02 compiliert! Brauchte zwar ein paar versuche weil die Anleitung von Thomas Pi nicht mehr hundert pro zutrifft...aber finaly it works!

    Linking dynamic library: ..\CvGameCoreDLL.dll
    Creating library ..\CvGameCoreDLL.lib and object ..\CvGameCoreDLL.exp
    Output size is 6.94 MB
    Process terminated with status 0 (26 minutes, 29 seconds)
    0 errors, 0 warnings


    So...nun noch ein paar fragen, zu der compilierten CvGameCoreDLL.dll sind noch ein paar weitere Dateien entstanden. "CvGameCoreDLL.File Libery" (890kb), "CvGameCoreDLL.Programm Debug Database" (22.3MB) und "CvGameCoreDLL.Export Libery File"
    Dazu noch ein Ordner "Final Release Win32" (86.4Mb) in denen Objekt Files drinnen sind, die die gleichen Namen besitzen wie die Dateien die ich zur neuen CvGameCoreDLL.dll compiliert habe. Was haben die alle auf sich????
    Geändert von Monaldinio (15. September 2010 um 23:52 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  8. #8
    Registrierter Benutzer Avatar von Lord Tirian
    Registriert seit
    23.02.08
    Ort
    Liverpool, UK
    Beiträge
    36
    Mit rebuild meine ich den "Rebuild Solution" Menüeintrag - habe grade nur die engl. Version von Visual Studio bei mir, deswg. hab' ich schnell einen Screenshot gemacht/angehängt - damit sollteste finden können, was ich meine!

    Deine Frage zu den anderen Dateien passt perfekt dazu - wenn du Code kompilierst, dann muss der Compiler Zwischenschritte machen - die ganzen verschiedenen Dateien zusammensuchen, sie verlinken, externe Dinger (wie die Python-Teile, die du im ersten Anlauf nicht dabei hattest) einbinden usw.

    Wenn er das gemacht hat, speichert er alle diese Objekte - das sind genau die über die du dich wunderst. Wenn du jetzt z.B. das ganze erneut kompilierst, wird das deutlich schneller gehen - weil er all diese Zwischenschritte schon gespeichert sind. Und solange du *nur* die .cpp-Dateien änderst, ist das alles kein Problem.

    Wenn du jedoch neue externe Elemente einbindest oder die Header-Dateien bearbeitest, dann sind diese Zwischenschritte nicht mehr aktuell - dann muss man einen Rebuild machen, damit der Compiler all diese Dinger neu macht.

    Eine andere Funktion, jenseits des schnelleren Kompilierens, dieser Elemente ist auch das Debuggen - die erlauben es dem Debugger mitzuverfolgen, durch welchen Teil der DLL sich das Programm gerade arbeitet. Wirklich kümmern musst du dich aber nur um die DLL-Datei selbst - die ist ja was du brauchst!

    Hoffe das hat dir weitergeholfen... ab jetzt kann ich dir leider weniger helfen, weil ich nicht allzu vertraut mit dem Civ-Programmcode bin - hatte nie Zeit mir den mal richtig anzuschauen.

    Grüße, LT.
    Angehängte Grafiken Angehängte Grafiken

  9. #9
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Lord...du hast mich schon auf manchen Erkenntnispfad geschickt...

    Aber muss ich nicht eine debugg DLL erzeugen??? Dachte immer das ist etwas anderes als die normale Dll.

    Und wie mache ich das?!?


    Vor allem...wie stellen ich es an das ich das Spiel dann mit dieser Dell starte, wie verbinde ich diese beiden Sachen!?? Vielleicht gibst du mir mal ein Bsp wie sowas geht.

    Mein IDE muss doch währenddessen geöffnet sein..

    Frage mich aber, da ich ja alle Dateien aus den CvGameCore Ordner des Planetfalls verwendet habe + die beiden Ordner aus BtS, warum ich ein rebuild machen muss?!? Du hast ja gesagt das muss man nur machen wenn man neue Sahen rein nimmt bzw was verändert hat...

    Edit: so - ich habe trotzdem mal die Datein rebuildet...ich seh zwar keinen großen unbterschied...aber naja...

    Jetzt muss mir jemand nur mal erklären wie ich das mit dem Debuggen mache!
    Geändert von Monaldinio (16. September 2010 um 08:56 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  10. #10
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    So...ich habe jetzt mal meine frisch erstellte Debugg-Dll (13.9MB) an den Prozess..."Planefall" drangehängt...beim laden des Crash SaveGames ist das Spiel natürlich abgeschmiert...aber folgendes hat mir der Debugger von MS VS 2008 an Infos gegeben...

    Der Thread 'Win32 Thread' (0xfb4) hat mit Code 0 (0x0) geendet.
    Eine Ausnahme (erste Chance) bei 0x025e3090 (CvGameCoreDLL.dll) in Civ4BeyondSword.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000006.

    Ich weiß nicht aber gerade die stelle "hat mit Code 0" geändet kommt mir sehr komisch vor! Alles was auf 0 endet ist Mist, Division durch 0 ganz besonders.


    Unbehandelte Ausnahme bei 0x025e3090 (CvGameCoreDLL.dll) in Civ4BeyondSword.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000006.

    Vielleicht haben die Macher vom Planefall wirklich eine "def Lücke", eine Ausnahme die nicht geklärt ist behandelt wurde, im Quellcode... Und ich arme Sau bin natürlich der einziger der in das Loch tritt. Und das schon zwei mal...

    Und nun...weiss noch nicht mal ob ich das richtig gemacht habe, habe rein instinktiv gehandelt.

    Wenn ich das richtig verstanden habe sind in diesen Dateien die Fehler aufgetreten.



    CvGameCoreDLL.dll!CvDLLEntity::setup() + 0x18 Bytes C++
    CvGameCoreDLL.dll!CvUnit::setupGraphical() + 0x18 Bytes C++
    CvGameCoreDLL.dll!CvPlayer::setupGraphical() + 0x77 Bytes C++

    Ich glaube ich hab eh nur Schrott gemacht...
    Geändert von Monaldinio (16. September 2010 um 10:32 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  11. #11
    Registrierter Benutzer
    Registriert seit
    04.03.07
    Beiträge
    4.694
    0 als Rückgabewert eines Programms ist gut, das heißt nämlich "Ich bin ohne Fehler fertig geworden". Wobei sich das wohl auf den Debugger bezieht, denn Civ ist ja gecrasht.

    Die Zugriffsverletzung ist das Problem. Ich schätze mal, da ist irgendwo ein NULL-Zeiger durchgeflutscht, der dann als Array verwendet wurde... könnte haarig werden, das nachzuvollziehen. Kannst du was mit Breakpoints anfangen? Wenn ja, könntest du einen in den Funktionen, die crashen, einstellen und mal etwas rumschnüffeln.

  12. #12
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Joar ich kann was mir Breakpints anfangen!

    Aber ich hab das Problem mal nen Profi anvertraut, der meinte das der gesamte Quellcode ziemlich buggig ist.
    Und an meinen Änderungen lag es nicht!!!! Die waren sind alle einwandfrei! Zumal bei ihm "mein" Mod nicht gecrashed ist.
    Werde jetzt nur noch eine Änderung im Code vornehmen, denn man hat mich auf etwas hingewiesen das, wenn ein Mod die Fähigkeit hat im Spiel neue Civs zu erzeugen - und das kann Planetfall - und dieses am Rande der Karte passiert, kann es sein das dadurch ein Fehler passiert (auf großen Karten - und ich spiel Nur Groß oder Riesig) weil der Pc den den Abstand zum Karten rand nicht so richtig auf die Reihe bekommt und machmal, im wahrsten Sinne des Wortes übers Ziel hinnaus schießt.
    Geändert von Monaldinio (19. September 2010 um 21:56 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  13. #13
    Registrierter Benutzer
    Registriert seit
    04.03.07
    Beiträge
    4.694
    Klingt ja grandios...

  14. #14
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650


    Grandios????
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  15. #15
    Registrierter Benutzer
    Registriert seit
    04.03.07
    Beiträge
    4.694
    Ironie?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •