Unlinking EntryPoint schlägt fehl.



  • Moinsen Leutz!

    Ich schreibe gerade an einer Dll, welche von LabView eingebunden werden soll. Bis jetzt hat das auch wunderbar funktioniert. Anfang der Woche habe ich einen File-Logger eingefügt. Seit dem bekomme ich eine AccessViolation von VisualStudio angezeigt, wenn zum ca. 3. Mal die DllMain wieder verlassen werden soll. Das

    return TRUE;
    

    funktioniert, aber sofort kommt die Exception mit Fehlercode 0xc0000005 (AccessViolation). Als Ort der Exception wird die BSHEAP.c (Zeile: 620) angezeigt, bei der die folgende Anweisung an eine Stelle greift, wo man das anscheinend besser nicht macht.

    //  unlink entry from list
    pEntry->pEntryPrev->pEntryNext = pEntry->pEntryNext;
    pEntry->pEntryNext->pEntryPrev = pEntry->pEntryPrev;
    

    Hat vllt einer eine Idee woher das kommt, oder noch besser, wie man das wieder wegbekommt.
    Ich bin für jegliche Form der Hilfe dankbar.

    Bis denne, Stefan.



  • Hallo,

    ist ja nicht gerade viel Code...aber ich würde mal tippen, dass irgendn ein Pointer 0 oder nicht initialisiert ist.

    Mach doch mal asserts hin oder debug an die Stelle.



  • Jepp, ich weiß dass es wenig Code ist, aber es sind die einzigen Anhaltspunkte, die ich habe. Danke für den Tip mit der Debugsache, aber so schlau war ich auch schon. (Sorry, falls der Ton falsch rüberkommt, aber ich bins leid, dass man bei dieser Art von Fragen immer für bescheuert gehalten wird.)
    Durch die Debugsitzungen bin ich so ratlos, da alle genutzten Pointer entweder nicht 0 oder/und initialisiert sind. Es sei denn, dass der allokierte Speicher zurückggeben wurde, da nicht mehr gebraucht.
    Die Anwendung kommt über alle Anweisungen, die innerhalb der DllMain liegen. Es sind auch keine Speicherlecks oder ähnliches zu finden. Und es wird sauber ein TRUE (0x01) zurückgegeben.
    Und zum in die Funktion hinein debuggen. Da es sich um Windows-Standart-Dateien handelt, ist ein wirkliches debuggen an der Stelle, wo der Fehler auftritt nicht möglich. Es liegen von Windows leider keine offenen Quellen vor. Von diesem Krampf eines Betriebssystems hat man leider nur die Oberfläche und soinst nur lückenhafte informationen.

    Falls es noch konstruktive Ansätze gibt. Ich bin für jede Hilfe dankbar.

    Bis denne. Stefan.


Anmelden zum Antworten