Я хочу иметь трассировку стека не только для моих исключений, но также для любых потомков std::exception
Как я понимаю, трассировка стека полностью потеряна, когда исключение поймано из-за разворачивания стека (разворачивание).
Таким образом, единственный способ, с помощью которого я могу его захватить, - вставить код контекстной информации (трассировку стека) в месте вызова конструктора std::exception
. Я прав?
Если это так, скажите, пожалуйста, как можно сделать инъекцию кода (если возможно) на С++. Ваш метод может быть не полностью безопасным, потому что он мне нужен только для версии Debug моего приложения. Может быть, мне нужно использовать ассемблер?
Меня интересует только решение для GCC. Он может использовать функции С++ 0x