none
C++ AddVectoredExceptionHandler RRS feed

  • Frage

  • Wie groß ist der Stack den ich innerhalb des Handlers zu Verfügung habe bzw. wo kann ich diesen einstellen?
    Donnerstag, 6. Juni 2019 15:41

Antworten

  • Die Dokumentation zu AddVectoredExceptionHandler erwähnt kein Limit. Eingeschränkt ist allerdings die Parameterzahl (EXCEPTION_MAXIMUM_PARAMETERS ist 15).

    - Gruß Florian

    Freitag, 7. Juni 2019 06:55
  • Die Callback Function wird in demselben Thread aufgerufen in der die Exception geworfen wurde  und verwendet den dazugehörigen Stack.
    Default müsste 1MB sein - abzüglich des schon verwendeten Stacks:
    https://docs.microsoft.com/en-us/windows/desktop/procthread/thread-stack-size
    Die Größe des Stacks kann man zwar für spezifisch für jeden Thread einstellen - siehe CreateThread Funktion -
    aber nachdem der Handler für die gesamte Anwendung gilt, würde ich es vielleicht eher mal damit versuchen:
    /F (Stapelgröße festlegen)
    https://docs.microsoft.com/de-de/cpp/build/reference/f-set-stack-size?view=vs-2019
    oder

    Insgesamt scheint die Handler Funktion aber doch eher etwas 'sensibel' zu sein, siehe 'Remarks':
    https://docs.microsoft.com/en-us/windows/desktop/api/winnt/nc-winnt-pvectored_exception_handler

    Mit freundlichen Grüßen

    Freitag, 7. Juni 2019 08:23

Alle Antworten

  • Die Dokumentation zu AddVectoredExceptionHandler erwähnt kein Limit. Eingeschränkt ist allerdings die Parameterzahl (EXCEPTION_MAXIMUM_PARAMETERS ist 15).

    - Gruß Florian

    Freitag, 7. Juni 2019 06:55
  • Die Callback Function wird in demselben Thread aufgerufen in der die Exception geworfen wurde  und verwendet den dazugehörigen Stack.
    Default müsste 1MB sein - abzüglich des schon verwendeten Stacks:
    https://docs.microsoft.com/en-us/windows/desktop/procthread/thread-stack-size
    Die Größe des Stacks kann man zwar für spezifisch für jeden Thread einstellen - siehe CreateThread Funktion -
    aber nachdem der Handler für die gesamte Anwendung gilt, würde ich es vielleicht eher mal damit versuchen:
    /F (Stapelgröße festlegen)
    https://docs.microsoft.com/de-de/cpp/build/reference/f-set-stack-size?view=vs-2019
    oder

    Insgesamt scheint die Handler Funktion aber doch eher etwas 'sensibel' zu sein, siehe 'Remarks':
    https://docs.microsoft.com/en-us/windows/desktop/api/winnt/nc-winnt-pvectored_exception_handler

    Mit freundlichen Grüßen

    Freitag, 7. Juni 2019 08:23