mrzys 最近的时间轴更新
mrzys

mrzys

V2EX 第 204612 号会员,加入于 2016-12-06 12:27:58 +08:00
[北京]美团-门票度假 Java 开发工程师
酷工作  •  mrzys  •  2021-05-27 17:59:08 PM  •  最后回复来自 mrzys
1
吐槽同事一段 rap 歌词
程序员  •  mrzys  •  2018-08-10 17:52:38 PM  •  最后回复来自 Adelina
28
各位大佬,求帮分析一下这段 C 代码
程序员  •  mrzys  •  2018-03-24 20:01:49 PM  •  最后回复来自 mrzys
32
mrzys 最近回复了
2021-05-27 17:59:08 +08:00
回复了 mrzys 创建的主题 酷工作 [北京]美团-门票度假 Java 开发工程师
虽说是 Java 岗,但是不限技术栈。欢迎投递简历到 [email protected]
2018-08-06 16:48:13 +08:00
回复了 mrzys 创建的主题 程序员 吐槽同事一段 rap 歌词
@tingyunsay 我也很闲,但是活能干完哈。这位同事活就是能拖就拖的,还喜欢请假。一请假,我就忙了。。。
2018-08-06 16:46:54 +08:00
回复了 mrzys 创建的主题 程序员 吐槽同事一段 rap 歌词
@yag 他过年休了 20 多天,活都甩给我干了啊。。。
2018-08-06 11:47:13 +08:00
回复了 mrzys 创建的主题 程序员 吐槽同事一段 rap 歌词
@tutustream 哈哈,我瞄了一眼,他是在刷朋友圈。在我回复你的时候,他已经玩了 5 分种手机了。今天上午没听见他敲键盘。。。
2018-03-24 20:01:49 +08:00
回复了 mrzys 创建的主题 程序员 各位大佬,求帮分析一下这段 C 代码
@pkookp8
环境:4.13.0-37-generic gcc version 5.4.0 20160609

```
两次未优化的汇编代码:
```
Dump of assembler code for function main:
0x0000000000400546 <+0>: push %rbp
0x0000000000400547 <+1>: mov %rsp,%rbp
0x000000000040054a <+4>: sub $0x10,%rsp
0x000000000040054e <+8>: mov -0x10(%rbp),%rax
0x0000000000400552 <+12>: mov %rax,%rsi
0x0000000000400555 <+15>: mov $0x400604,%edi
0x000000000040055a <+20>: mov $0x0,%eax
0x000000000040055f <+25>: callq 0x400430 <__isoc99_scanf@plt>
0x0000000000400564 <+30>: movq $0x0,-0x8(%rbp)
0x000000000040056c <+38>: mov $0x0,%eax
0x0000000000400571 <+43>: leaveq
0x0000000000400572 <+44>: retq

```

```
Dump of assembler code for function main:
0x0000000000400546 <+0>: push %rbp
0x0000000000400547 <+1>: mov %rsp,%rbp
0x000000000040054a <+4>: sub $0x20,%rsp
0x000000000040054e <+8>: mov -0x18(%rbp),%rax
0x0000000000400552 <+12>: mov %rax,%rsi
0x0000000000400555 <+15>: mov $0x400604,%edi
0x000000000040055a <+20>: mov $0x0,%eax
0x000000000040055f <+25>: callq 0x400430 <__isoc99_scanf@plt>
0x0000000000400564 <+30>: movq $0x0,-0x10(%rbp)
0x000000000040056c <+38>: movq $0x0,-0x8(%rbp)
0x0000000000400574 <+46>: mov $0x0,%eax
0x0000000000400579 <+51>: leaveq
0x000000000040057a <+52>: retq
End of assembler dump.

```
-0x18(%rbp)和 -0x10(%rbp)的值,一个是非法的一个是合法的
2018-03-24 19:55:41 +08:00
回复了 mrzys 创建的主题 程序员 各位大佬,求帮分析一下这段 C 代码
@tomychen 额,感觉没关系啊。我刚好写完了 rio,准备写代码测试的时候发现了这个蛋疼的问题。不过还好,解决了这个问题加深了对汇编和运行时堆栈的了解。
2018-03-24 19:48:20 +08:00
回复了 mrzys 创建的主题 程序员 各位大佬,求帮分析一下这段 C 代码
@lingdux 大佬,我动态调试了一下,的确是一个巧合,未注释和注释的时候,指针的地址虽说有 8 个字节的偏差,但是正式因为这 8 个字节的偏差,导致指针指向的地址完全不一样,未注释的时候指针指向的地址指向了 code segment,注释后,指针指向的地址是合法的。
2018-03-24 19:43:10 +08:00
回复了 mrzys 创建的主题 程序员 各位大佬,求帮分析一下这段 C 代码
@pkookp8 我自己测试环境是 ubuntu x86-64,用 macOS 也测试了一下,-O0 的时候会报错,但是-O1 的时候不会报错。
2018-03-24 19:40:20 +08:00
回复了 mrzys 创建的主题 程序员 各位大佬,求帮分析一下这段 C 代码
@dummytaurus 我使用 gdb 打印了一下未初始化的指针的值,两次指针指向的地址不一样,没注释 i 和 j 的时候指针地址是合法的,注释其中一个的时候指针地址指向了 read-only code segment。的确和 crt 有关系。我怀疑是调用 main 之前已经使用了栈空间,栈上的值被上次的函数调用写入了数据,当调用 main 的时候,因为指针没有初始化,用的上次的值。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3102 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 12:55 · PVG 20:55 · LAX 05:55 · JFK 08:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.