C_and_CPP 板


LINE

开发平台(Platform): (Ex: Win10, Linux, ...) WinXP 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) VS2005 额外使用到的函数库(Library Used): (Ex: OpenGL, ...) Math.h 问题(Question): sqrt错误 喂入的资料(Input): 25.0 预期的正确结果(Expected Output): 5.0 错误结果(Wrong Output): 1077478015.000000 程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档) 目前在一个Lib内新建一些函式及功能,因为跟预期值不一样所以进侦错模式看 发现如果直接用A = sqrt(B),A的值会错掉 例如会得到sqrt(25.0)=1077478015.000000 但如果在外部把sqrt包过一层再呼叫数值就对了 例如 double my_sqrt(double input) { return sqrt(input); } 这时候my_sqrt(25.0)=5.0 补充说明(Supplement): 这个系统在dos版本上,主流程使用的sqrt是系统内建的 中断使用的sqrt是用组语另外写的,问过主管说是为了避免一些stack混用的问题 但目前在windows平台上,不管在中断还是主流程用的都是math.h的sqrt 我不能理解直接呼叫sqrt跟再包过一层有什麽差别? 基本上有关於浮点数内部计算都是用double --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.76.65.68
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1527133375.A.238.html
1F:→ djshen: 跟上面一样是怎样.. 05/24 11:52
2F:→ nh60211as: 你跟上一篇是同事吗 05/24 11:59
3F:→ newlymoon: 不好意思 他是我同事 = = 05/24 12:02
4F:→ Kayusumi: 楼上强者我同事 05/24 12:38
5F:→ LPH66: ok, 同上一篇回应, 你们是在什麽情境下"错"的也要写出来 05/24 14:46
6F:→ LPH66: 只看"对"的东西对解决"错"的东西没有帮助 05/24 14:46
7F:推 LPH66: 单讲侦错模式我们根本不知道是执行什麽东西时侦错 05/24 15:12
8F:→ LPH66: 虽然提了这麽多, 但是还是给个水晶球里的显像供参考 05/24 15:21
9F:→ LPH66: 检查一下是否有 float 跟 double 的混用 05/24 15:22
10F:→ LPH66: 组语的计算跟回传是否为正确的浮点数型态 05/24 15:22
11F:→ LPH66: 以及你们 A = sqrt(B) 当中两者的型态以及你们的 sqrt 型态 05/24 15:23
12F:→ Kayusumi: 输入输出都是double, 我猜是可能参照到不同的math.h, 因 05/24 15:39
13F:→ Kayusumi: 为再测试ceil之类的函式也是错的, 最後就是math.h相关全 05/24 15:39
14F:→ Kayusumi: 部在外面包一层 05/24 15:39
15F:→ descent: 可能要反组译一下, 看看 sqrt 的程式码是不是有不同? 05/24 15:58
16F:→ descent: math.h 不是只有一个, 怎麽会用到不同的, 05/24 15:59
17F:→ descent: 你们混用不同的开发工具吗? 05/24 15:59
18F:→ Kayusumi: 我们有几种执行环境, 最後用的库不太一样 05/24 16:06
19F:→ Kayusumi: 比较奇特的是有问题的那几个函式,逐步执行进不去(ceil 05/24 16:10
20F:→ Kayusumi: sqrt之类) 05/24 16:10
21F:→ Kayusumi: 也有可能是complier设错导致,这是新开的执行环境 05/24 16:13
22F:推 descent: 是不是都是 math.h 的函式有错误? 05/24 18:31
23F:→ Kayusumi: 目前查到是这样没错,但也不是每个都错 05/24 20:32
24F:→ Kayusumi: 有问题的用逐步执行不会进函式里面 05/24 20:36
※ 编辑: Kayusumi (203.133.119.129), 05/24/2018 21:18:14
25F:→ notBeing: 有需要cross bank吗? 05/25 00:39
26F:推 yvb: 那个 sqrt(25.0) 的错误回传值 1077478015 是否不固定会乱跳? 05/25 13:44
27F:→ yvb: 若是, 可能被当成 int sqrt() 了? X86_64 ABI 问题? 05/25 13:46
28F:→ yvb: 若是 X86 ABI (32-bit) 应该没这种情况. 05/25 13:48
29F:→ yvb: 叫用 sqrt(25.0) 之前再宣告一下 double sqrt(double); 看看? 05/25 13:50
30F:→ Kayusumi: 当时有测试不管输入double/int的值回来都是错的 05/25 20:09
31F:→ remember: 有问题就 trace 组语啊 XD 05/26 11:36
32F:→ Kayusumi: 这就是神奇的地方,没办法进去TRACE它跑啥,但像memcpy 05/26 12:36
33F:→ Kayusumi: 这种就可以进去 05/26 12:36
34F:→ tinlans: 要用组语层级的单步执行去追就能进去吧 05/26 13:47
35F:→ Kayusumi: 应该说 有问题这几个 用单步也进不去, 会直接丢值回来, 05/26 15:30
36F:→ Kayusumi: 但没问题的就可以用单步进去 05/26 15:30
37F:→ Kayusumi: 这个状况只发生在某环境的执行档,另一个就不会 orz 05/26 15:34
38F:→ Schottky: 干嘛死咬着能不能单步执行... 05/26 18:09
39F:→ Schottky: 单步执行组语也要看得懂组语才行,虽然不知为何 C++ 板 05/26 18:11
40F:→ Schottky: 的诸位好像都看得懂 XD 看不懂才正常吧 05/26 18:11
41F:→ Schottky: 能用 C 语言层级单步追踪进去,条件是要有 C 原始码和 05/26 18:13
42F:→ Schottky: debug symbol 记载原始码和执行档/程式库的对应关系 05/26 18:13
43F:→ Schottky: 跟程式码本身有没有错误毫无关联 05/26 18:14
44F:→ Kayusumi: 我是觉得可能什麽东西设错导致LINK的时候有错啦 05/26 19:46
45F:→ Kayusumi: 毕竟这是基础函式库 05/26 19:46







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灯, 水草

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

TOP