RtlValidateHeap Nachricht im Debugfenster disablen



  • Hi,

    ich beschäftige mich gerade mit private Heap.

    Wenn ich nun einen Invaliden Ptr im Debug Modus habe den ich mit HeapValidate prüfe hält dass Programm an und sagt "oh oh". Mir würde es genügen ainfach nur FALSE zu erhalten. Kann ich diese Meldung und das Anhalten des Programmes für die Validation abschalten? Wenn ja, mit welchen Flag?

    Grüße und dank


  • Mod

    Was für einenDialog meinst Du?
    Einen aus der CRT?



  • Ja,.

    Sowas wie :
    HEAP[blub.exe]: Invalid Address specified to RtlValidateHeap( 00360688, 0115E000 )

    Den Dialog muss ich Händisch bestätigen.

    Da die funktion HeapValidate ja gerade prüfen soll ob ein ptr Valide ist, würde mir im Debug (oder gerade im Release) Modus ein False als R_Value reichen.

    ich habe mich schon ein bissl umgesehen, leider finde ich bei
    _CrtSetDbgFlag nichts passendes ,...

    Hast Du eine Alternative ?

    Ich freue mich schon auf eine Antwort,...

    Gruß und Dank



  • Der kommt eigentlich nzur, wenn Du das ganze unter dem Application Verifyer laufen lässt...


  • Mod

    Jo. Und ansosnten kann man in der CRT ASSERT Dialoge unterdrücken.



  • Jo Martin,

    ich habe mal versucht CRT ASSERT Dialoge zu unterdrücken. Ich habe dein Beispiel aus dem Blog genutzt Martin. Leider öffnet sich immer noch der Dialog das ein Haltepunkt ausgelöst wird und im Debug Fenster dann Die Ausgabe "HEAP[...exe] Invalid Address specified to RtlValidateHeap...."

    Also der Dialog öffnet sich bei

    bRet=HeapValidate(this->_hEap,NULL,(LPCVOID) this->_ptr);
    

    der ptr ist Bewusst nicht gültig um mein Code zu überprüfen.

    Eine weiter Idee?


Anmelden zum Antworten