JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Disassemblierung Fehler NTDLL.DLL

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 08.11.2007, 15:44    Titel: Disassemblierung Fehler NTDLL.DLL Antworten mit Zitat

Hallo

Na wer kann was mit dieser Überschrift anfangen SRY aber das beschreibt mein Fehler wenigstens ein bischen. Wink

was fürn fehler ich habe keine Ahnung.

Mein Programm an dem ich gerade arbeitet soll ein Bild übertragungs Programm werden das Bilder von Rechner a auf Rechner b transportiert.

Das funktioniert auch.

Machmal kommt dann halt eben eine Windowsfehler Meldung.
Das kann nach dem 5000 bild sein oder aber auch nach dem 120.

Unbehandelte Ausnahme in png selbst.exe (NTDLL.DLL) 0*c0000000005;
Access Violation

Dieser Fehler weist ja auf einen Zeiger der noch nicht belegt ist.
Wenn ich das programm im Debuggmudus starteund dann dieser fehler auftritt. bin ich im Disassemblierung "modus"
was ja die umgehrung von complimierung ist zumindestens laut wiki.


und hänge dort an folgender Zeile fest.

7C911010 cmp dword ptr [edx+14h],0

Im Normal Fall kann man jetze nach oben scrollen und ihrgentwann kommt dann mal der eigentliche Befehl den man aufgeruffen hat.
Hier nicht das heist ich weis nicht wo im eigentlichen Programm also c++ Code der Fehler ist.


Ich arbeite mit Visuel Studio 6.0 Autoren edition von der CD.
Mein code hat 0 Fehler 0 Farnings

Ich weis das das nichts bedeutet.

Wie kann ich den Fehler logaliesieren.
ein Grossteil der der Veränderungen log ich in txt datein schon mit aber ohne überhaupt keinen ansatz weis ich nicht wo der fehler zufinden sein könnte.

Wist ihr wo ich bessere informationen als bei Google finden könnte.
Der Grossteil hat mit gothic 2 3 zutun??
MSDN hab ich auch schon durchsucht.
Nix zu finden.

Fragen über Fragen und Einproblem das ich nicht verstehe und auch nicht beheben kann.

Ich hoffe auf viele Antworten die mich meinem Problem beheben lassen.

Mfg Faller

Ein werwirter Porgrammierer.
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 08.11.2007, 17:42    Titel: Re: Disassemblierung Fehler NTDLL.DLL Antworten mit Zitat

Faller hat Folgendes geschrieben:
Ich arbeite mit Visuel Studio 6.0 Autoren edition von der CD.
Mein code hat 0 Fehler 0 Farnings

Ich weiß nicht, was du da für ne Version hast, aber entweder sollte da stehen "x errors and y warnings" oder "x Fehler und y Warnungen" Wink

Um zu deinem Problem zu kommen: Solche Zugriffsverletzungen, die dir selbst im Debugmodus nur als Disassembly angezeigt werden, deuten idR. darauf hin, dass der Fehler im "tieferen" Code, der nicht von dir stammt, (unwahrscheinlich) verursacht wird, oder aber (sehr wahrscheinlich) dort auftritt, dadurch dass er von dir verursacht wird, indem du diesen Fremdcode (von DirectX, winapi, whatever...) fehlergemäß nutzt.
Ich bin mir nicht sicher, obs das bei VS 6.0 schon gab, aber schau mal, ob du dir beim Debuggen eine Aufrufsliste anzeigen lassen kannst. Die Codeteile, die nicht in DLLs also in "Reinform" vorliegen, sollten dort schwarz (die anderen grau) dargestellt werden. Schaust du dort, was genau aufgerufen wird, bevor du in den grauen Code kommst, kann dir das einen Hinweis geben, wo du suchen musst.
Falls du damit nichts anfangen kannst/nicht weiter kommt, empfehle ich, per Logfile o.ä. eine eigene Aufrufsliste zu erstellen. Der Sinn ist, dass bestimmte Kontrollpunkte im Code abgeklappert werden und ein entsprechendes Stichwort in eine Logdatei geschrieben wird. So kannst du auch herausfinden, wo letztendlich der Fehler aufgetreten ist.
Wenn das ganze in der NTDLL.DLL auftritt, wird es sehr wahrscheinlich auch damit etwas zu tun haben. Überprüfe, ob du den von dieser DLL zur Verfügung gestellten Code tatsächlich ordnungsgemäß benutzt. Oft gibts ja da eine Doku, die dir sagt, worauf du achten musst Wink

Ich fürchte, viel weiter können wir dir da nicht helfen...
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 08.11.2007, 17:47    Titel: Antworten mit Zitat

Mit der dissassemblierten Zeile wo der Fehler auftritt wirst du wahrscheinlich nicht viel anfangen können, da (wie auch die MsgBox zeigt) der Fehler in der NTDLL auftritt. Weil dort kein C++-Code enthalten ist, findest du auch keine Zeile bei der Dissassemblierung; du kommst überhaupt auch nur dorthin, weil es keine höhere Ebene ( = c++-Code) gibt, die den Auftritt des Fehlers zeigt. Da es ziemlich unwahrscheinlich ist, dass die NTDLL falsch gecodet wurde (obwohl WIndows ja so einige Macken hat... Razz ), muss der Fehler in deinem Programm liegen. Ich denke mal du übergibst einen falschen Parameter an eine Win32-Funktion, die in der NTDLL definiert ist. Der Fehler tritt dann in dieser Form auf, weil Windows mit dem Fehlerreport auf dieser Ebene nicht so genau ist. Daher solltest du mal schauen, ob du den verantwortlichen Teil in deinem Code eingrenzen, und dort speziell alle Parameter an Windows Funktionen untersuchen kannst.

Gruß DXer

EDIT: Hmm TLOP war schneller Twisted Evil Aber wir sind wohl einer Meinung, gutes Zeichen Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.11.2007, 20:26    Titel: Antworten mit Zitat

evtl. könnte man mal mit exceptions rumprobieren

Ich hatte mal ein sehr seltsames Problem: Einen tga Loader, der scheinbar zufällig irgendwann abstürzt. Das aber nur auf einem anderen Rechner. Mit Exceptins hatte ich es irgendwann soweit, das es lief, nur ein Bild wurde halt nicht korrekt geladen, der Rest ging aber.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 09:24    Titel: Antworten mit Zitat

Das Problem ist das das Problem erst nach 1.5 std ungefähr auftritt.

Ich loge schon mit die kritischen Funktionen also wenn sie starten schreib ich in eine text datei rein "start (funktion)" und wenn sie zuende ist schreibe ich in die datei "ende (funktion)"

Das Problem ist das beim beenden des programms scheinbar noch die Funktionen ausgeführt werden die möglich sind und dann steht halt auch das ende noch drinne.

Wie könnte ich das programm 100% umnieten so das er mit sicherheit nicht noch schreiben kann.

Problem ist das ich mit Treads arbeite und das das debugen nicht gerade leichter macht.
Jemand ne idee wie man threads leichter debugt bei fehlern??

ps bei mir im VS steht "0 Fehler, 0 Warnung(en)" gg Very Happy

The Lord of Programming :
Aufrufsliste ne idee nach was genau man im internet suchen müsste um dies umstellen zu können "also wo man das findet"???

Visuel hat ne menge funktionen.

mfg Faller
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 16:09    Titel: Antworten mit Zitat

Faller hat Folgendes geschrieben:
The Lord of Programming :
Aufrufsliste ne idee nach was genau man im internet suchen müsste um dies umstellen zu können "also wo man das findet"???

"Aufrufliste Visual Studio 6.0", ganz einfach.
Erstes Ergebnis führt hier hin.

Jetzt wo du sagst, dass du unterschiedliche Threads verwendest...
Ich hab zwar noch nicht viel mit Threads gemacht, aber das kann durchaus auch die Fehlerquelle sein, wenn auf bestimmte Dinge von zwei Threads aus "gleichzeitig" zugegriffen wird.
Eine andere Möglichkeit wäre es, falls das mit den Threads nicht zu komplex verschaltet ist, zu probieren, ob es funktioniert, wenn du alles in einen Thread packst.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 37
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 16:27    Titel: Antworten mit Zitat

Thx für eure antworten

ich hab den fehler gefunden und nen neuen auch ggg.

ok mein fehler lag darin das ich den buffer zuklein bestimmt habe.
dann schrieb er in ein interger rein was nadürlich explodierte.
und dieses i war dan damit beschäftig im hdc das bild an die richtige stelle zu schreiben.

was nadürlich zu ner speicher überschreitung manchmal fürte.
eigentlich sind meine pakete beschrängt auf 2000 zeichen und das 2001 hats dann gebackt das ganze ding runter zu jagen.

Fals ihr mal so ein prob habt denn der fehler kann über all sein.

logt das "gesammte" programm mit an den stellen einfach die datei neu öffnen und nach dem schreiben schliessen.

und immer wenn der fehler auftitt das gesammte prog im task manager killen den kompletten prozess runter hollen denn wie bei mir arbeit der nämlich weiter und schreibt dann auch den rest sauber rein.

finde ich wichtig deswegen schreib ich es jetze mal hier auf hoffe es hilft jemand.

mfg faller

ein überglücklicher programmierer der ein scheiss dll fehler behoben hat.
der verrückt wird wieviele fehler in 2000 zeilen 3 programme rein passen gg.

ein schönes wochende
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum