|
|
1
5
您可以使用GDB监视此内存地址中的每次写入,如下所示:
阅读不会导致记忆的损坏,但是有很多情况你甚至想象不到这可能是原因,而Valgrind并不是一个完美的工具。 |
|
|
2
2
它不会破坏您读取的内存,但不会对程序的运行产生奇迹。 |
|
|
3
1
|
|
|
4
1
不,读取无效位置不可能导致您看到的错误。如果地址空间中的位置是有效的,那么你只是在读垃圾,如果不是,那么你会得到一个分段错误。
|
|
|
5
1
大约30年前,我被它咬了一口,因为我的错误读取引发了内存库切换(即内存的每个字节,包括包含代码的区域,都在该指令之后获得了一个新的不同值)。 有趣的是,这不是一个真正的“无意”的坏阅读。。。事实上,我做了阅读,即使知道这将是垃圾,因为这节省了我一些汇编指令。。。不是明智之举。 |
|
|
6
0
真正可能发生的是,free可以使用madvise(MADV\u DONTNEED)syscall告诉内核“我不需要这个页面,放弃它”(参见madvise(2)manpage)。如果该页面真的被释放,并且您从中读取了任何内容,那么内核将静默地提供新的页面,并将其归零,从而导致您的应用程序遇到完全意外的数据! |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 1 年前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 1 年前 |