Ich habe eine nicht-Qt C DLL geschrieben mit Mingw mit der QtCreator IDE kompiliert.Wie Debuggen eines DLL-Projekts mit QtCreator?
Wenn ich die DLL in einen Prozess injiziere, verursacht die DLL, dass dieser Prozess bei einer bestimmten Codezeile abstürzt. Ich fand, dass diese Linie der Schuldige durch die Verwendung von OutputDebugString
ist. Ich weiß, wie man die Zeile repariert und die DLL funktioniert, wenn diese Zeile geändert wird. Um jedoch zu lernen, wie man einen Debugger benutzt, habe ich die Zeile gebrochen und unmodifiziert verlassen.
Wie würde ich den QtCreator Debugger verwenden, um genau die gleiche Linie zu finden, die das Problem verursacht? Wenn QtCreator wird im Debug-Modus, Drücken von F5 Ergebnissen im folgenden Dialog kompilieren, weil es keine EXE ist:
Schreiben Sie ein kleines Programm, das mit der Bibliothek verknüpft, die das Problem reproduziert, und führen Sie das im Debugger aus. Oder was meinst du genau mit "inject"? –
@FrankOsterfeld: http://en.wikipedia.org/wiki/DLL_injection Es ist eine Low-Level-DLL-Datei, die den Speicher des Opfers bearbeitet bearbeitet. Ich kann nicht mit der Bibliothek verknüpfen, da DLL-Injektion funktioniert. Warum bearbeite ich den Speicher eines anderen Prozesses? Ich bearbeite den Speicher eines Open-Source-Projekts namens Assault Cube. Der Zweck ist es, mehr darüber zu erfahren, wie C-Code in ASM übersetzt wird und wie Computer auf der unteren Ebene funktionieren. – user2924308
Nun, Sie können einfach den ausführbaren Namen eingeben, der Ihre DLL und Argumente dazu im obigen Fenster verwendet und QtCreator erledigt den Rest für Sie. – Lol4t0