私は、Jsonパーサーを使用してSolaris 5.8、C++で作業しています。
問題は、700 MBを超えるサイズのファイルを解析しているときに、コアダンプエラーでプロセスがクラッシュすることです。それは大まかにコードポイントの下で発生します-
int printbuf_memappend(struct printbuf *p, char *buf, int size)
{
char *t;
if(p->size - p->bpos <= size)
{
int new_size = json_max(p->size * 2, p->bpos + size + 8);
if (!(t = realloc(p->buf, new_size)))
return -1;
p->size = new_size;
p->buf = t;
}
memcpy(p->buf + p->bpos, buf, size); // CORE DUMP HERE
p->bpos += size;
p->buf[p->bpos]= '\0';
return size;
}
問題の特定にご協力いただけますか?コアダンプファイルには、コピーされるデータのみが含まれます。RAMの増加は解決策になりますか?または、ファイルサイズを700MBに制限する必要がありますか?