@ProCxx

Страница 1558 из 2477
Gregor
08.12.2017
13:54:07
короч, какую технику дебага применить для поиска такого

в многопоточном приложении конечно же

Square
08.12.2017
13:54:58
Ну ты ей память испортил. Чо. Сохраняй стектрейсы, попробуй всякие анализаторы

Good
08.12.2017
13:55:07
если сорцов нет, то посмотреть дамп, можно еще приаттачиться к работающей службе дебагером и посмотреть где и что

Google
Square
08.12.2017
13:55:26
Код увидеть вариант?

код ошибки 0xc0000005 и сбойный модуль — это рантаймовая либа MSVC80.dll или типа того
начни с анализа доступа к памяти, каким нить инструментом, например intel memory analyzer

Gregor
08.12.2017
14:02:02
Кода там тонна, но из-за разных длл он у меня только в релизе собирается, в этом и проблема

Antony
08.12.2017
14:02:25
А так: https://stackoverflow.com/questions/1261198/automatic-break-when-contents-of-a-memory-location-changes-or-is-read

Gregor
08.12.2017
14:02:53
Падает нечасто, но приблизительный сценарий получается иногда наиграть.

если сорцов нет, то посмотреть дамп, можно еще приаттачиться к работающей службе дебагером и посмотреть где и что
Дама вроде в отчёте об ошибках есть, я смогу оттуда стек трейс вытащить хотя бы?

начни с анализа доступа к памяти, каким нить инструментом, например intel memory analyzer
Находил сегодня их тулзу кстати, скачал, но ещё не юзал

Square
08.12.2017
14:06:13
Gregor
08.12.2017
14:09:48
А в момент крэша дебаггером подключится?
А он падает с перезапуском сразу

Square
08.12.2017
14:10:10
А он падает с перезапуском сразу
Хм, служба ж. Отключить перезапуск )

Gregor
08.12.2017
14:10:23
К тому крашится где-то внутри рантаймовой либы мсвц

Google
Square
08.12.2017
14:10:37
Ну это последствия

Gregor
08.12.2017
14:11:16
Я подозреваю какой-нибудь вызов чисто виртуальной функции из одной из сторонних библиотек, но не могу точно в этом быть уверен

Antony
08.12.2017
14:22:36
Похоже на доступ к полю структуры по нулевому указателю

Gregor
08.12.2017
14:23:27
чё-то скрин не хочет отправляться

Antony
08.12.2017
14:23:33
что-то наподобие pair<int,string>* p = foo(); p->second;

Gregor
08.12.2017
14:23:34
тут запрещено?

Stanislav
08.12.2017
14:23:45
для всех новых пользователей запрещено по умолчанию

Gregor
08.12.2017
14:24:12
да я вроде не новый)

Stanislav
08.12.2017
14:24:42
да я вроде не новый)
ну видимо с тех по как это ввели новый

Gregor
08.12.2017
14:24:56
в общем, нашёл дамп в дебрях каталогов)

попробовал его студией запустить

Unhandled exception at 0x70351eeb in WERCF76.tmp.mdmp: 0xC0000005: Access violation reading location 0x39393700.

Stanislav
08.12.2017
14:25:04
лучше текст на wandbox/ideon

Gregor
08.12.2017
14:25:32
pdb-шек нет, вот что плохо

коллстек тут дичайшего размера показывает, в нём почти все дллки из моего проекта заюзаны

если не все

вдвойне осложняется тем, что я этот проект плохо знаю, т.к. я его не писал и сел сразу на поддержку. некоторые файлы в нём датированы 98 годом)

Ilia
08.12.2017
14:29:40
короч, какую технику дебага применить для поиска такого
Запустить под отладчиком сервис.... Лучше для этого его скомпилить С ОТЛАДОЧНОЙ информацией.

Gregor
08.12.2017
14:30:08
он не хочет компилиться, потому что у меня нет дебажных версий сторонних либ

Google
Gregor
08.12.2017
14:30:33
мб я не знаю просто, как решить эту проблему, буду благодарен, если подскажете

Ilia
08.12.2017
14:30:38
Kitsu
08.12.2017
14:31:19
Ilia
08.12.2017
14:31:24
он не хочет компилиться, потому что у меня нет дебажных версий сторонних либ
Не надо собирать DEBUG, собирай Release, но с отладочной информацией. И с оптимизацией

Kitsu
08.12.2017
14:31:44
если есть возможность контроллировать количество потоков, посмотри получается ли баг при 1 потоке

Ilia
08.12.2017
14:31:53
Не надо собирать DEBUG, собирай Release, но с отладочной информацией. И с оптимизацией
Возможно, отладочная информация там уже есть... .PDB всякие

НУЖНО

Gregor
08.12.2017
14:32:21
проект написан так, что там масса классов наследуется от класса Thread, который в свою очередь — обёртка над CreateThread

Ilia
08.12.2017
14:32:37
Если ты соберёшь это в Debug, очень может быть , что ошибка испарится

Gregor
08.12.2017
14:33:00
ок, а потом просто подсунуть эти pdb туда, где лежат dll?

Ilia
08.12.2017
14:33:40
Gregor
08.12.2017
14:34:00
с радостью бы зареджектил эту багу с таким вердиктом)))

Ilia
08.12.2017
14:34:37
ок, а потом просто подсунуть эти pdb туда, где лежат dll?
Её подсовывать где лежат не надо, его надо в отладчик зафигачить. Можно удалённо отлаживать (это полезно) через VStudio

Gregor
08.12.2017
14:35:00
аттач к процессу, то что выше советовали?

он почему-то у меня не видит экзешник службы

Ilia
08.12.2017
14:35:12
Ну да но удалённому

Gregor
08.12.2017
14:35:19
студия из-под админа запущена

Google
Ilia
08.12.2017
14:35:51
Я думаю, тебе отдельно стоит поучиться только этому искусству , отлаживать удалённо.

Сделай маленкий проектик, и поотлаживай удалённо.

Gregor
08.12.2017
14:36:13
я не совсем понимаю термин "удалённо"

с другой машины?

Ilia
08.12.2017
14:36:22
как научишься-переходи на отладку сервиса

Gregor
08.12.2017
14:36:49
но у меня только одна рабочая))) стенда под этот проект нет

Ilia
08.12.2017
14:36:56
Но это не обязательно, можно наверное и локально этот сервеи запускать

Admin
ERROR: S client not available

Gregor
08.12.2017
14:36:56
виртуалку ставить нужно

Ilia
08.12.2017
14:37:19
Ну запускай рабочуу, вот это уже удалённо надо видимо делать

Но под отладкой

Gregor
08.12.2017
14:37:34
Ilia
08.12.2017
14:38:03
Ты проблему -то можешь воспроизводить? REPRO есть ? Или в непонятный момент происходит?

Gregor
08.12.2017
14:38:16
Ну запускай рабочуу, вот это уже удалённо надо видимо делать
я понял, спасибо, в выходные попробую освоить на простом проекте

сейчас пока попробую через дамп и pdb

Ilia
08.12.2017
14:39:21
Ну кстати если получишь хотя бы стек трейс, т.е. список вызовов фукнций по этому потоку, уже будет можно поглядеть на код и аналитически попробовать найти проблему

Gregor
08.12.2017
14:39:53
да, как раз этого и не хватает)

в целом проект не сверхсложный

просто немного запутанный

Google
Gregor
08.12.2017
14:40:30
и очень много потоков непонятно зачем наделано

Ilia
08.12.2017
14:42:23
А какую библиотечку для стектрейсов ты вставлять будешь?

Gregor
08.12.2017
14:44:33
не понял вопрос, если честно

есть какие-то логгеры стека?

Gregor
08.12.2017
14:47:26
воу

по-моему у меня даже где-то собранный под нужную студию буст лежит

Alexander
08.12.2017
14:49:49
да и собрать буст - дело получаса максимум

Gregor
08.12.2017
14:51:53
нужен довольно свежий
свежий наверно уже не скомпилится под с++03

Maks
08.12.2017
15:31:15
Люди, а в плюсах вообще как с библиотеками для машинного обучения?

Vlad
08.12.2017
15:32:01
вообще хорошо

даже очень

вот наша - https://github.com/catboost/catboost

TensorFlow есть у гугла

у МС тоже что-то (забыл)

Maks
08.12.2017
15:34:00
Спасибо. Только первая почемуто только для Питона и Эрки

Gregor
08.12.2017
15:58:45
Коллеги всем спасибо

в дампе обнаружил проблему

это гонка

в одном из потоков передаётся ссылка на объект в другой поток, и в этом же потоке этот объект уничтожается

Страница 1558 из 2477