2012-05-04 6 views
0

Я не очень специалист в БГДЕ и MDB, но что я знаю, что: -Замена mdb на захват gdb?

 `(gdb) catch throw` 

Это прервет любое исключение выбрасывается
У меня есть какая-либо аналогичная команда в MDB, который будет прерывать в любое время исключение бросается?

ответ

2

Нет, этого не существует; это связано с тем, что в Solaris это зависит от ваших компиляторов и/или параметров компиляции, которые используются C++ ABI (и как выбрасываются исключения).

mdb не не делает попытку узнать все это, и ни один не gdb на Solaris (если вы скомпилировать его, catch throw не будет работать ни с староголландских или нового стиля исполняемых файлов ВС CC).

Ваш лучший вариант - выяснить, что такое «C++ ABI hooks», т. Е. Какие скрытые/внутренние функции вызывают на throw() и точку останова. Или, как только вы нашли/перечислили эти крючки, напишите свой собственный модуль, который будет реализовывать команду ::catch (mdb - расширяемый - модульный отладчик).

Edit: (бесстыдный штепсель) Смотри также this answer of mine (относительно C++ исключений и DTrace, «скрытые» имена функций могут быть использованы для mdb точек останова).

 Смежные вопросы

  • Нет связанных вопросов^_^