|
|
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
Нужно отловить багу с Segmentation fault , в момент падения память занятая программой может занимать около Гигабайта. Подскажите каким образом можно не выгружать программу из памяти после падения и по факту падения натравить на нее gdb с командой ( для начала хотя бы bt ). Ссылки по теме приветствуются. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2007, 10:57:29 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
ну например: запускать проблемную программу сразу через gdb подключать gdb к уже запущенной программе ещё до падения и продолжать её исполнение написать обработчик сигнала SIGSEGV в программе, в котором подключать gdb к программе -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2007, 00:54:16 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
Ёшну например: написать обработчик сигнала SIGSEGV в программе, в котором подключать gdb к программе Спасибо, если это заработает будет то, что нужно. 1. Вполне может получиться что пока форкнутый gdb будет раздупляться, отлаживать будет уже нечего. 2. Я могу получить и вероятнее всего получу стек с обработчиком, а мне нужно вычислить функцию( стек вызовов) в при котором происходит падение. Пока незнаю как там происходит обработка сигнала, вереоятнее всего через longjmp, и у меня может оказаться совсем другой стек, который мне не интересен. За идеи спасибо, буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2007, 20:43:35 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
А что дождаться падения core не судьба? Там-то стек точно будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2007, 21:02:16 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
blindedА что дождаться падения core не судьба? Там-то стек точно будетнасколько я понял - у топикстартера проблема в том, что core занимает много места (около гига) ps: да.. походу в обработчике сигнала backtrace потерян для gdb... попробовал сейчас у себя такой обработчик: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 07:54:40 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
onstat-, почему Вам сразу бы не запустить программу под gdb ? это imho самое простое в данной ситуации: gdb --eval-command='run' ./test1 -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2007, 07:58:51 |
|
||
|
g++ & gdb
|
|||
|---|---|---|---|
|
#18+
Ёшonstat-, почему Вам сразу бы не запустить программу под gdb ? это imho самое простое в данной ситуации: gdb --eval-command='run' ./test1 -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери Эта программа запускается другой программой, в возможности ее запуска из под gdb есть административные ограничения которые сейчас решаются. з.ы. Проблема была в изменении некоторых спецификаций обмена на лету. Место падения локализовано анализом коры. Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2007, 10:42:34 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=264&tid=2027665]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 375ms |

| 0 / 0 |
