powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / try/catch в обычном c?
22 сообщений из 22, страница 1 из 1
try/catch в обычном c?
    #39741910
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли использовать какой-то аналог в обычном с для отлова, например, записи за границу выделенного блока памяти?
Сейчас при таком действии приложение сразу улетает, а вот, чтобы не улетало, как сделать?
Знаю, что где-то в 1-2 функциях фигня проихсодит, хотелось бы поймать
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39741931
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если виндовс, то почитай про SEH
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39741941
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли виндовс, то почитай про SEH

надо бы в мак осе
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39741947
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kDima TЕсли виндовс, то почитай про SEH

надо бы в мак осе
научи лягушку далеко прыгать с longjmp
.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39741958
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kЗнаю, что где-то в 1-2 функциях фигня проихсодит, хотелось бы поймать

Говорят, " http://drmemory.org%22%5DDr.Memory]http://drmemory.org"]Dr.Memory работает и под макосью.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39741962
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCc256kпропущено...


надо бы в мак осе
научи лягушку далеко прыгать с longjmp
.
Не прочитал начало. в маке должен быть сигнал SIGSEGV
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742030
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov256kЗнаю, что где-то в 1-2 функциях фигня проихсодит, хотелось бы поймать

Говорят, " http://drmemory.org%22%5DDr.Memory]http://drmemory.org"]Dr.Memory работает и под макосью.


Неплохой, но пишут там:
авторCurrently, Dr. Memory does not yet support uninitialized read detection for 64-bit applications, so we recommend compiling your target application as 32-bit.

Моя .so на Mac OS Sierra, не пройдет.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742133
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kМоя .so на Mac OS Sierra, не пройдет.

Оно тебе и не надо. Твой случай это segfault, а он ловится.

Кроме того, гугль утверждает, что 32-х разрядные приложения в Сиерре тоже запускаются,
хоть и с предупреждением.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742344
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov256kМоя .so на Mac OS Sierra, не пройдет.

Оно тебе и не надо. Твой случай это segfault, а он ловится.

Кроме того, гугль утверждает, что 32-х разрядные приложения в Сиерре тоже запускаются,
хоть и с предупреждением.



Запускаются, но мое строится 64бит.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742347
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov256kМоя .so на Mac OS Sierra, не пройдет.

Оно тебе и не надо. Твой случай это segfault, а он ловится.

Кроме того, гугль утверждает, что 32-х разрядные приложения в Сиерре тоже запускаются,
хоть и с предупреждением.


ага, как поймать segfault в с?
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742356
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcOoCcпропущено...

научи лягушку далеко прыгать с longjmp
.
Не прочитал начало. в маке должен быть сигнал SIGSEGV


Тут вот еще как: есть внешнее приложение, у меня кодов нет, которое использует мою длл, падение происходит в приложении, как в вызывающем процессе из-за того, что где-то в моей длл издет запись в уже освобожденную память.

Так вот: можно ли прикрутить перехватчик SIGSEGV в длл? Например, я приблизительно знаю, где нарушение, потому, что только там я могу что-то менять, коды есть.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742383
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kOoCcпропущено...

Не прочитал начало. в маке должен быть сигнал SIGSEGV


Тут вот еще как: есть внешнее приложение, у меня кодов нет, которое использует мою длл, падение происходит в приложении, как в вызывающем процессе из-за того, что где-то в моей длл издет запись в уже освобожденную память.

Так вот: можно ли прикрутить перехватчик SIGSEGV в длл? Например, я приблизительно знаю, где нарушение, потому, что только там я могу что-то менять, коды есть.
А что краш дамп говорит?
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742393
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCc256kпропущено...



Тут вот еще как: есть внешнее приложение, у меня кодов нет, которое использует мою длл, падение происходит в приложении, как в вызывающем процессе из-за того, что где-то в моей длл издет запись в уже освобожденную память.

Так вот: можно ли прикрутить перехватчик SIGSEGV в длл? Например, я приблизительно знаю, где нарушение, потому, что только там я могу что-то менять, коды есть.
А что краш дамп говорит?

Краш дамп приложения показывает, что во время цикла по выборке записей из базы где-то кырдык.
Подроностей не вижу.
Консольный лог пишет типа такого

malloc: *** error for object 0x102469358: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

но по адресу в приложении не могу определить, где разруха в длл.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742432
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kOoCcпропущено...

А что краш дамп говорит?

Краш дамп приложения показывает, что во время цикла по выборке записей из базы где-то кырдык.
Подроностей не вижу.
Консольный лог пишет типа такого

malloc: *** error for object 0x102469358: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

но по адресу в приложении не могу определить, где разруха в длл.
Я бы сначала использовал средства которые предоставляет система. Malloc debug
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39742856
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kТут вот еще как: есть внешнее приложение, у меня кодов нет, которое использует мою длл,
падение происходит в приложении, как в вызывающем процессе из-за того, что где-то в моей
длл издет запись в уже освобожденную память.

Повторяю медленно: DrMemory это поймает. Потому что "чтение не инициализированной памяти",
которое там не реализовано, это совсем не "запись в уже освобождённую память".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743445
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcOoCcпропущено...

научи лягушку далеко прыгать с longjmp
.
Не прочитал начало. в маке должен быть сигнал SIGSEGV

Есть, да,
приложение(не мое, кодов нет)-вызывает длл(моё, коды есть)
Поставил ловушки в длл, но поймал не SIGSEGV, а SIGSABRT

Может перед тем SIGSEGV и шел, но не долетел до длл, а уже по факту убоя сработал SIGSABRT
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743465
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kприложение(не мое, кодов нет)-вызывает длл(моё, коды есть)

Ну а просто запустить его в отладчике ты пробовал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743513
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kOoCcпропущено...

Не прочитал начало. в маке должен быть сигнал SIGSEGV

Есть, да,
приложение(не мое, кодов нет)-вызывает длл(моё, коды есть)
Поставил ловушки в длл, но поймал не SIGSEGV, а SIGSABRT

Может перед тем SIGSEGV и шел, но не долетел до длл, а уже по факту убоя сработал SIGSABRT
SIGSEGV может и не появляться совсем. SIGSABRT инициируется abort() функцией. Откуда уверенность что её не исполняет приложение или какая-либо библиотечная функция типа malloc() ?
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743529
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov256kприложение(не мое, кодов нет)-вызывает длл(моё, коды есть)

Ну а просто запустить его в отладчике ты пробовал?


как?

Запускающее приложение - не мое, кодов нет, моя только длл (*.so)
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743569
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kкак?

gdb "Запускающее приложение"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743607
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov256kкак?

gdb "Запускающее приложение"


реально там всё кучеряво:

стартует главное приложение (Java), оно с GUI, при определенном выборе юзера это приложение изнутри стартует сервер (о нем я и писал, что оно главное), а он - грузит мою длл.
При нарушении памяти моей длл, этот сервер улетает, а главное приложение спрашивает юзера и перестартовывает его.
Дебажить сервер - не знаю с какой стороны его ловить, гуи нету, улетает и прилетает, как хочет.

Такая фигня, такая карусель.
...
Рейтинг: 0 / 0
try/catch в обычном c?
    #39743769
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kДебажить сервер - не знаю с какой стороны его ловить, гуи нету, улетает и прилетает, как
хочет.

а) С помощью strace или дампа коры выясняешь с какими параметрами и окружением этот сервер
запускается, воспроизводишь и гуй остаётся за пределами задачи, которая сводится к уже
известной.

б) Доктору говоришь трассировать запускаемые процессы тоже (что, впрочем, он делает по
умолчанию), находишь нужный лог и... всё, телемаркет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / try/catch в обычном c?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]