由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - G++用-g和-O3编译运行结果竟然不一样
相关主题
GCC 居然允许变量长度的向量c++ pointer conversion question
debug你们用哪个软件? 请问c++为什么会编译失败?
谁来解释一下这个是compiler问题吗?[合集] 这段C++程序哪种写法是正确的
C++编译的问题C 和 C++ 的区别
【请教】mpicc 和 mpiCC编译问题微软VS修改bug的效率不行啊
谁给总结一个c++变量初始化的规律?int &x=y;的问题
请教一道C语言的题目看下这个小程序
再问C++初始化问题。帮忙找个错
相关话题的讨论汇总
话题: valgrind话题: 初始化话题: o3话题: 优化话题: 变量
进入Programming版参与讨论
1 (共1页)
w***g
发帖数: 5958
1
数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
l*****d
发帖数: 359
2
undefined behavior again?
w***g
发帖数: 5958
3
g++能够对undefined behavior报错吗?程序很大,而且用了boost什么的library,自己
找起来太麻烦了。

【在 l*****d 的大作中提到】
: undefined behavior again?
l*****d
发帖数: 359
4
-g -O3什么都不加试试?

自己

【在 w***g 的大作中提到】
: g++能够对undefined behavior报错吗?程序很大,而且用了boost什么的library,自己
: 找起来太麻烦了。

T*******i
发帖数: 4992
5
输出中间结果再比较

【在 w***g 的大作中提到】
: 数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
t****t
发帖数: 6806
6
用valgrind运行

【在 w***g 的大作中提到】
: 数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
m****t
发帖数: 37
7
不一定
可能用了什么数没有初始化

【在 w***g 的大作中提到】
: 数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
s***e
发帖数: 122
8
至少得用上-Wall吧

【在 w***g 的大作中提到】
: 数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
w***g
发帖数: 5958
9
-Wall -pedantic都没给出有用的信息,太郁闷了。

【在 s***e 的大作中提到】
: 至少得用上-Wall吧
s***e
发帖数: 122
10
这种一般都只好用printf去查了。我只有一个有一点点类似的例子:调别人写好的程序
,用的是Fortran,在SunOS和Linux上的结果不一样,后来发现是有一个变量没有初始
化,在SunOS上被初始化为0,但是在Linux就没有。我觉得多用些printf,二分法分段
猜测,花些时间应该就能找出来,就是最后会感叹,写程序容易调程序难 :O)

【在 w***g 的大作中提到】
: -Wall -pedantic都没给出有用的信息,太郁闷了。
相关主题
谁给总结一个c++变量初始化的规律?c++ pointer conversion question
请教一道C语言的题目 请问c++为什么会编译失败?
再问C++初始化问题。[合集] 这段C++程序哪种写法是正确的
进入Programming版参与讨论
t****t
发帖数: 6806
11
told you, just use valgrind to run it

【在 w***g 的大作中提到】
: -Wall -pedantic都没给出有用的信息,太郁闷了。
t****t
发帖数: 6806
12
valgrind solves this easily

【在 s***e 的大作中提到】
: 这种一般都只好用printf去查了。我只有一个有一点点类似的例子:调别人写好的程序
: ,用的是Fortran,在SunOS和Linux上的结果不一样,后来发现是有一个变量没有初始
: 化,在SunOS上被初始化为0,但是在Linux就没有。我觉得多用些printf,二分法分段
: 猜测,花些时间应该就能找出来,就是最后会感叹,写程序容易调程序难 :O)

p***m
发帖数: 387
13
printf? ft!

【在 s***e 的大作中提到】
: 这种一般都只好用printf去查了。我只有一个有一点点类似的例子:调别人写好的程序
: ,用的是Fortran,在SunOS和Linux上的结果不一样,后来发现是有一个变量没有初始
: 化,在SunOS上被初始化为0,但是在Linux就没有。我觉得多用些printf,二分法分段
: 猜测,花些时间应该就能找出来,就是最后会感叹,写程序容易调程序难 :O)

s***e
发帖数: 122
14
I usually use it to do memory leak check, but it does seem to be good at
more.

【在 t****t 的大作中提到】
: valgrind solves this easily
s***e
发帖数: 122
15
yes, you never know how good it is.

【在 p***m 的大作中提到】
: printf? ft!
w***g
发帖数: 5958
16
bug找出来了,确实是因为有个变量没有初始化。

【在 w***g 的大作中提到】
: 数值上有显著的差异,太ft了,不知道怎么debug。请版上的牛牛们给点建议。
f*****Q
发帖数: 1912
17
那为什么不同优化会有不同结果呢?那个达人讲讲?

【在 w***g 的大作中提到】
: bug找出来了,确实是因为有个变量没有初始化。
r*********r
发帖数: 3195
18
优化后某些局部变量可能都不存在了.
f*****Q
发帖数: 1912
19
但是跟初始化有什么关系呢?

【在 r*********r 的大作中提到】
: 优化后某些局部变量可能都不存在了.
r*********r
发帖数: 3195
20
优化用了什么trick很难讲,除非看它生成的汇编代码.
btw, 变量没有初始化是常见问题, 用 valgrind 可以查出来的.
相关主题
C 和 C++ 的区别看下这个小程序
微软VS修改bug的效率不行啊帮忙找个错
int &x=y;的问题char s[]和char *ps的不同
进入Programming版参与讨论
w***g
发帖数: 5958
21
未优化变量的初始值和这个变量的内存地址有关。优化参数变了以后这个变量的内存地
址一般也会变,所以初始值就不一样了。

【在 f*****Q 的大作中提到】
: 那为什么不同优化会有不同结果呢?那个达人讲讲?
r*********r
发帖数: 3195
22
举个不相关的例子. 老版本的 gcc 是不把 .bss 段里的东西清零的, 好像 3.x 以后就
自动清零了.
所以加了一个优化项 -fno-zero-initialized-in-bss. 用和不用这个优化项显然结果
不同.
gcc 刚升级时, 有些kernel code因为这个东西编译不过去.
u***************r
发帖数: 11227
23


【在 w***g 的大作中提到】
: 未优化变量的初始值和这个变量的内存地址有关。优化参数变了以后这个变量的内存地
: 址一般也会变,所以初始值就不一样了。

f*****Q
发帖数: 1912
24
原来如此。您没赋值就直接用了...

【在 w***g 的大作中提到】
: 未优化变量的初始值和这个变量的内存地址有关。优化参数变了以后这个变量的内存地
: 址一般也会变,所以初始值就不一样了。

P*****f
发帖数: 2272
25
据我所知,目前的OS kernel在serve page fault时都是把页面初始化为0。这主要是从
安全角度出发。
很想知道有哪些当前的OS不这样做

【在 r*********r 的大作中提到】
: 举个不相关的例子. 老版本的 gcc 是不把 .bss 段里的东西清零的, 好像 3.x 以后就
: 自动清零了.
: 所以加了一个优化项 -fno-zero-initialized-in-bss. 用和不用这个优化项显然结果
: 不同.
: gcc 刚升级时, 有些kernel code因为这个东西编译不过去.

w***g
发帖数: 5958
26
C++ POD不自动初始化这一点很不好,一不小心就忘了。

【在 f*****Q 的大作中提到】
: 原来如此。您没赋值就直接用了...
1 (共1页)
进入Programming版参与讨论
相关主题
帮忙找个错【请教】mpicc 和 mpiCC编译问题
char s[]和char *ps的不同谁给总结一个c++变量初始化的规律?
请教C的类型转换问题请教一道C语言的题目
g++ default optimization error再问C++初始化问题。
GCC 居然允许变量长度的向量c++ pointer conversion question
debug你们用哪个软件? 请问c++为什么会编译失败?
谁来解释一下这个是compiler问题吗?[合集] 这段C++程序哪种写法是正确的
C++编译的问题C 和 C++ 的区别
相关话题的讨论汇总
话题: valgrind话题: 初始化话题: o3话题: 优化话题: 变量