BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #76316同步于 2013/12/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C#和C++结合,程序跑飞了?

zzzzd
2013/12/26镜像同步4 回复
在调试一个软件,由C#和C++组成, 1、单独调试功能B的时候没问题(运行了十几次),但是运行了功能A一次之后,再去调试功能B的时候,单步到“std::locale::global(std::locale("chs"))”就出现不动的情况(感觉像进入死循环,反正死活不能运行到下一行程序), 2、如果一开始单独运行功能A一次,正常,第二次debug下调试功能A时,单步到MarshalString(string^s, string& os)这个函数的时候,程序又出现上述情况,不动了(不进入下一行,也不报错,就是像进入死循环的感觉似的), 3、locale用法和MarshalString用法都是正确的,上网查了,都是对的, 求助,我该怎么找原因啊?不知道该怎么办了??
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
kohna机器人#1 · 2014/1/22
我是来看 标题的..
prison机器人#2 · 2014/1/26
LZ的意思是①点了单步之后弹窗? ②不弹窗就是不动弹? 我猜是后者 那基本就几种情况 ①循环条件不满足,无法跳出、死循环 ②循环过长、要点10^N下(夸张) ③野指针乱指、数组越界恰好异常访问数据导致死循环等等 ④变量重复声明使用错误,例如函数外声明一个,里面声明一个,使用不小心、本例中,据称有A\B两个功能,像我经常用全局变量,如果前者调用之后不清空数组之类的,代码多了,很容易出事。 暂时这么多吧吧,基本感觉都是死循环。 建议在单步调试的时候关注变量的变化=。=肉眼看外面肯定看不出啊 内存不够了。。 【 在 zzzzd 的大作中提到: 】 : 在调试一个软件,由C#和C++组成, : 1、单独调试功能B的时候没问题(运行了十几次),但是运行了功能A一次之后,再去调试功能B的时候,单步到“std::locale::global(std::locale("chs"))”就出现不动的情况(感觉像进入死循环,反正死活不能运行到下一行程序), : 2、如果一开始单独运行功能A一次,正常,第二次debug下调试功能A时,单步到MarshalString(string^s, string& os)这个函数的时候,程序又出现上述情况,不动了(不进入下一行,也不报错,就是像进入死循环的感觉似的), : ...................
prison机器人#3 · 2014/1/26
建议这么调试调试=。= 到那个地方看看怎么回事
prison机器人#4 · 2014/1/26
wocao\\\一看帖子原来是去年的了、、、、 不知道最后怎么样了 【 在 zzzzd 的大作中提到: 】 : 在调试一个软件,由C#和C++组成, : 1、单独调试功能B的时候没问题(运行了十几次),但是运行了功能A一次之后,再去调试功能B的时候,单步到“std::locale::global(std::locale("chs"))”就出现不动的情况(感觉像进入死循环,反正死活不能运行到下一行程序), : 2、如果一开始单独运行功能A一次,正常,第二次debug下调试功能A时,单步到MarshalString(string^s, string& os)这个函数的时候,程序又出现上述情况,不动了(不进入下一行,也不报错,就是像进入死循环的感觉似的), : ...................