Процесс с протобуфом сбоя ParseFromString - PullRequest
0 голосов
/ 09 марта 2020

Только на производственной машине у меня есть процесс sh в процессе. Я смог изолировать это на ParseFromString вызов. Когда ParseFromString не вызывается, процесс не создает sh. При вызове процесс в конечном итоге обработает sh: не в ParseFromString, а после нескольких выходов из стека в одном потоке (поэтому я точно определил точное местоположение cra sh, где на самом деле ничего интересного не происходит), так что, вероятно, это плохая проблема выделения памяти. Это не воспроизводится ни в лаборатории, ни на производственном оборудовании с использованием WinDbg. Ввод в ParseFromString, как видно из дампа pretty-print (чистый текст, а не фактический двоичный ввод в метод), кажется нормальным без специальных символов или лишних пробелов. Двоичный файл на входе std::string, конечно, имеет специальные символы.

Я хотел бы получить предложения о том, как продолжить расследование этого

Спасибо

1 Ответ

0 голосов
/ 09 марта 2020

У меня была похожая проблема. Причина была: версия .lib не подходит для dll. Например, скомпилировать с файлом release .lib и использовать файл debug dll. Итак, проверьте точную версию lib и dll. Проверьте настройки компиляции: не смешивайте код отладки с библиотеками релизов и т. Д. c.

...