C-DLL in C# einbinden und debuggen



  • Hallo Helfende,

    vielleicht kann mir einer von Euch weiterhelfen.

    Für die Entwicklung einer Firmware soll auf dem PC ein Emulator geschrieben werden. Bisher habe ich dafür die GUI in C++ mit Hilfe der MFC geschrieben und den C-Code in einem eigenen Thread gestartet und entwickelt. Jetzt sollen die Vorteile von C# (WPF) für die Entwicklung der Oberfläche genutzt werden. Soweit ist das auch kein Problem, Die C-Main kann ich aus WPF heraus starten und auch Werte aus C in WPF anzeigen. Ich schaffe es jedoch nicht in den C-Code hinein zu debuggen. Die folgenden Varianten habe ich probiert:

    C#-EXE ruft C-DLL
    C#-EXE ruft C++DLL(/clr) ruft C-DLL
    C#-EXE ruft C++DLL(/clr) mit C-LIB
    C#-EXE ruft C++DLL(/clr) mit integrierten C-Code(natürlich ohne /clr)

    Alle Varianten funktionieren problemlos. Aber ich kann bei keiner in den C-Code debuggen. Auch das nachträglichen Anhängen an den Prozess lässt kein Debug zu.

    Wenn ich die C-Dll aus einer C++EXE starte ist das Debuggen kein Problem.

    Frage:
    Wie kann ich die C-DLL debuggen wenn Sie von einer C#-EXE gestartet wurde?

    Vielen Dank
    Uwe



  • Falsches Forum: C# wäre besser - hat mit C++/CLI doch nix zu tun...

    Edit: Als Antwort.. probier doch mal in der C- DLL ein DebugBreak() zu plazieren.
    http://msdn.microsoft.com/en-us/library/ms679297(v=vs.85).aspx



  • Hallo theta,

    da es um die Verbindung von native-managed Code geht hielt ich die dafür bereitgestellte Sprache (C++/CLR) als Sinnvoll. Bitte vergib mir. Ich werde die Frage im C# Forum stellen.

    Weder "DebugBreak()" noch "__asm int 3" führen zum Erfolg.

    Danke für deine schnelle Antwort.

    Gruß Uwe




Log in to reply