Моя программа для загрузки файла 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 ++?