SEGV при разборе json файла C ++ - PullRequest
0 голосов
/ 06 февраля 2020

Моя программа для загрузки файла json периодически выдает SEGV со следующей подписью.

034613:/../lib/libtcmalloc.so.4(operator new(unsigned long) 0xc9)[0x7f493d215f99]
/lib/libjsoncpp.so(Json::Value::Value(Json::Value const&) 0xcc)[0x7f493ffa7f3a]
lib/libjsoncpp.so(Json::Value::operator=(Json::Value const&) 0x23)[0x7f493ffa81fd]lib/libjsoncpp.so
(Json::Reader::readObject(Json::Reader::Token&) 0x60)
[0x7f493ffa1cae]lib/libjsoncpp.so(Json::Reader::readValue() 0x103)[0x7f493ffa10f7]\n", 

и код, который приводит к этой ошибке:

ifstream config_stream(config_file);
string config_data((std::istreambuf_iterator<char>(config_stream)),
                    std::istreambuf_iterator<char>());
Json::Reader reader(Json::Features::all());
Json::Value json_parsed_data;
CHECK(reader.parse(config_data, json_parsed_data))

Потенциальная причина из связанных статей Я проверил, могло ли это произойти, если файл json слишком большой и имеет много вложений, но это не мой случай.

Мой json файл имеет 1 уровень вложенности и около 100 записей в целом файл не более 400 строк, кто-нибудь сталкивался с подобной проблемой при чтении из json файлов в c ++?

...