LINUX.ORG.RU

Ответ на: комментарий от conalex

Выглядит интересно, спасибо. Сейчас детально прочитаю.

UVV ★★★★★ ()
Ответ на: комментарий от fluorite

Ты же прочитал тот тред, прежде чем ссылку давать?

UVV ★★★★★ ()

А в чём конкретно проблема? Делай стектрейс в конструкторе исключений и всё.

mironov_ivan ★★★★★ ()

Ставь бряк на конструктор ексепшина и двльше bt в gdb

anonymous ()
Ответ на: комментарий от UVV

А если исключение не моё?

Тогда проси стектрейс у того, кто кидает это исключение.

mironov_ivan ★★★★★ ()

Что ты вкладываешь в понятие «stacktrace»? Можно получить адреса, из которых были вызваны функции (man backrace), затем эти адреса преобразовать в номера строк (man addr2line). А вот значения локальных переменных, аргументов и еще какой-нибудь содомии — фигушки (без серьезного «заимствования» больших объемов кода из дебаггеров).

А если исключение не моё?

  1. Выясняешь адрес функции __cxa_throw
  2. Делаешь туда mprotect с целью «исправить пару фатальных недостатков».
  3. Вставляешь jump на твою функцию
  4. В tls-переменную записываешь backtrace
  5. Анализируешь бактрейс из tls-переменной в catch-обработчике
kawaii_neko ★★★ ()

а о чём речь, и чем конкретно тебя google-breakpad не устраивает? он как раз именно для этого заточен и работает просто великолепно.

Iron_Bug ★★★★ ()
Ответ на: комментарий от Iron_Bug

Меня устраивает. Думаю, что буду уговаривать использовать именно его.

UVV ★★★★★ ()
Ответ на: комментарий от UVV

мы его использовали на большом проекте для телекома. были проблемы при запуске нового софта, когда ошибка могла случиться раз в несколько суток. отловить почти нереально. вот, использовали google-breakpad для мониторинга и отладки. штука хорошая. правда, под юниксом она не работает. но на линюксе всё зашибись.

Iron_Bug ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.