返回信息流综述:
本人的毕设代码的一部分,功能是比较3个json的异同,3个json树分别从3个文件读入,然后传进一个函数去比较
json的解析使用的rapidjson,貌似性能不错,然后这个函数出问题了。。。
先上代码:
void function(std::string file0,
std::string file1,
std::string file2,
std::string filename)
{
// 构造json
Document doc0, doc1, doc2;
doc0.Parse(file0.c_str());
doc1.Parse(file1.c_str());
doc2.Parse(file2.c_str());
queue<Value*> nodeQueue0;
queue<Value*> nodeQueue1;
queue<Value*> nodeQueue2;
// 获取nodelist
Value& n0 = doc0["description"]["-diagram"]["node"];
Value& n1 = doc1["description"]["-diagram"]["node"];
Value& n2 = doc2["description"]["-diagram"]["node"];
// 加入队列
nodeQueue0.push(&n0);
nodeQueue1.push(&n1);
nodeQueue2.push(&n2);
while(!nodeQueue0.empty()) // 从这一行开始出问题
{
// 从队列获取nodelist
Value* nodelist0 = nodeQueue0.front();
Value* nodelist1 = nodeQueue1.front();
Value* nodelist2 = nodeQueue2.front();
// 后面省略。。。
}
}
问题出在26行附近,当执行到这一行while的时候,仍然很正常,然后点下一步,箭头走到29行(还没执行),调试器给我报了个段错误,找了很久没找出原因,一度怀疑是26行访问了什么不该访问的地址,将26行改成while(true)也不行,甚至26行注释掉只留下花括号也不行。。。抓狂中
这是一条镜像帖。来源:北邮人论坛 / cpp / #92045同步于 2016/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
诡异的段错误(可能已解决)
cyf333333
2016/6/6镜像同步18 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
抽风的也许只是ide本身。
【 在 cyf333333 的大作中提到: 】
: 综述:
: 本人的毕设代码的一部分,功能是比较3个json的异同,3个json树分别从3个文件读入,然后传进一个函数去比较
: json的解析使用的rapidjson,貌似性能不错,然后这个函数出问题了。。。
: ...................
其他几个语言虽然都会点,但是已用了多年C艹,加上毕设写了一般了这时候换岂不是重来,还不如换回windows+vs保平安
【 在 nuanyangyang 的大作中提到: 】
: 用Java也行。如果实在不想用有垃圾回收的语言,用Rust也行,哪个都比C++容易使用。起码出错了不是“从什么都不发生到机器冒烟都可能”
在代码里插入一些printf吧,常用的调试方法。
话说你这么多年来是怎么调试的?
【 在 cyf333333 的大作中提到: 】
: 其他几个语言虽然都会点,但是已用了多年C艹,加上毕设写了一般了这时候换岂不是重来,还不如换回windows+vs保平安