C_and_CPP 板


LINE

在Visual Studio 2008编写MFC GUI时遇到一个莫名其妙的神奇问题 首先上图: https://i.imgur.com/eGBVQ.jpeg 我在这个function创建一个变数byWTF 之前是别的名字,但我後来故意改一个没用过的变数名称保证这个名称不可能被用过 然後实际在debug时,发现这个变数绝对不会被创建 导致後续出现一系列非预期错误 从图中也能看到 byWTF早就被宣告 上一行执行也给他赋值了 但是把他Add watch就发现这个变数根本没被放到记忆体 然後後面实际要用到他就直接闪退报错了 所有其他变数都能正常宣告创建 就他跟我之後测试用建的所有变数都无法正常创建 我这边到底是做错了甚麽?真的毫无头绪 更新: Debug build可以正常宣告, Release build就会出问题 240711 AM09:50更新: 我把整个release资料夹砍掉 再build 虽然byWTF依旧无法watch 但不会再出错crash了 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.130.45.59 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1720601570.A.BC6.html
1F:→ pigyuanncu: 请问你所谓的实际要用他是在回圈外用还是回圈内,就07/10 17:52
最内层回圈 有用在if判断式 以及後续也会把这个值赋予给别的变数 这个变数没被创建 导致我後续vector部分index会无法正常赋值 进而造成crash 我用Debug build跑就完全正常 但一用release build就会死在这
2F:→ pigyuanncu: 如你现在提供的程式码以及叙述,byWTF可能被编译器op07/10 17:52
3F:→ pigyuanncu: tomized out,所以你也找不到这个变数,但是你如果说07/10 17:52
4F:→ pigyuanncu: 你有实际存取这个变数,他应该就会存在於这个functio07/10 17:52
5F:→ pigyuanncu: n call的stack memory里,但用debugger找不找得到该07/10 17:52
6F:→ pigyuanncu: 变数是另外一回事(取决於optimization level)07/10 17:52
7F:→ james732: release build会做最佳化,有些变数会消失掉07/10 18:03
但很显然他把我一个必须用到的变数给最佳化掉了...
8F:→ pigyuanncu: 我觉得如果可以的话,看你要不要贴整段的程式码,感07/10 18:34
https://i.imgur.com/GDt2v.png 这边是主要会用到byWTF的程式码
9F:→ pigyuanncu: 觉起来你的crash可能不是东西不见了,如果是东西不见07/10 18:34
10F:→ pigyuanncu: 了,最烂的workaround可能会是让东西都变成volatile07/10 18:34
11F:→ pigyuanncu: ,但程式可能就会变很慢07/10 18:34
12F:→ firejox: vbyRawData是放在哪里07/10 19:52
这个function进入前就会在别的function给值了 我在本文贴的那个断点处也检查过该vector里确实有我预期的所有资料
13F:推 kdjf: 这样形式的变数变成直接存取/没给位置很正常啊,找个可以记07/10 19:53
14F:→ kdjf: 忆体管理和安全性的框架找看看是不是踩未定义行为吧07/10 19:53
15F:→ notBeing: Breakpoint 打在210行 试看看能不能watch , 先简化问题07/10 20:26
16F:→ notBeing: 试试07/10 20:26
有试过在那两个vector初始化的下面那行加 byWTF = 0; 然而断点设在210 用F10去跑每一行的时候 会直接跳过byWTF=0; 也watch不到东西(Symbol not found)
17F:推 ctrlbreak: 清专案重编看看 遇到过几次类似情况 也是release後发生07/10 22:31
好 我再试试看 感谢 == 更新:我把整个release资料夹砍掉 再build 虽然byWTF依旧无法watch 但不会再出错crash了
18F:→ firejox: 那如果把vbyRawData 用参数的方式会有同样的问题吗07/11 12:41
参数是指?
19F:→ firejox: 我要问的是vbyRawData的scope07/11 12:43
该class的private全域变数 我是直接宣告在标头挡的class里的
20F:→ firejox: 可能编译器认为 vbyRawData 都是0,然後有赋值的地方也07/11 12:49
21F:→ firejox: 看不到所以optimize时就不见了07/11 12:49
22F:→ Dracarys: 有可能debug/release builds ABI incompatible 然後lin07/11 21:01
23F:→ Dracarys: k错07/11 21:01
24F:→ Dracarys: 看不懂什麽叫private全域变数,可以写个07/11 21:03
25F:→ Dracarys: minimal reproducer放compiler explorer吗07/11 21:03
26F:→ firejox: 全域变数的话 volatile 应该能解决07/11 21:28
27F:推 wulouise: 这个变数会被optimized out的吧..只有loop内用07/11 22:34
28F:→ wulouise: 不能watch很正常,要看的是实际上那边crash07/11 22:35
29F:推 closer76: 同意应该是被最佳化掉了,因为是从 vector 取出的,编译07/12 00:38
30F:→ closer76: 器可以直接算出资料所在位置。07/12 00:38
31F:→ closer76: 不过我另外有个问题:为什麽要用 VS2008? XD07/12 00:38
32F:推 ctrlbreak: release版看不到正常, 不放心就输出一份asm档看看逻辑07/12 19:27
33F:→ ctrlbreak: 符不符合需求XD07/12 19:27
34F:推 lc85301: 看 asm 没必要吧,debug build 就可以了07/12 22:38
※ 编辑: handofn0xus (42.72.7.15 台湾), 07/26/2024 14:16:57
35F:推 OnlyRD: 怀疑是是你的程式有溢位或是memory leak,所以才会 03/18 02:40
36F:→ OnlyRD: debug没事release有事。用工具去扫一下程式码看有 03/18 02:40
37F:→ OnlyRD: 没有风险。 03/18 02:40







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP