二进制补码计算原理详解
二进制的负数在计算机中采用补码的方式表示。很多人很好奇为什么使用补码,直接使用原码表示多好,看上去更加直观和易于计算。然而事实告诉我们,这种直观只是我们人类的一厢情愿罢了,在计算机看来,补码才是它们最想要的。那么,为什么计算机使用补码更好,...
二进制的负数在计算机中采用补码的方式表示。很多人很好奇为什么使用补码,直接使用原码表示多好,看上去更加直观和易于计算。然而事实告诉我们,这种直观只是我们人类的一厢情愿罢了,在计算机看来,补码才是它们最想要的。那么,为什么计算机使用补码更好,...
一、背景 系统管理员经常需要ssh 或者telent 远程登录到linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必...
1、关于addresssanitizer 1.1 引言 也许很多人都听说过类似这样的一个故事:某公司的服务器每隔3个月就会毫无预兆的崩溃一次,怎么也查不出原因,为了避免崩溃可能引发的问题,只得每2个月手动重启一次服务器。在这类有些灵异的事件...
(一)简介 tcmalloc是与glibc、malloc同一级别的内存管理库,tcmalloc会hack所有glibc提供的接口,为调用者提供透明的内存分配。 (二)总体结构 page...
google的tcmalloc可以做内存越界检查,也就是查野指针。 野指针是应用程序最难查的崩溃的问题。google真的很强大,赞! 基本原理就是在分配时分配到页的底部,这样越界时就会报错了。也就是page_fence,这个选项是可以通过环...
什么是进程?什么是线程? 进程是系统中正在运行的一个程序,程序一旦运行就是进程。 进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另...
首先、查看我们的程序运行报的段错误信息 通过命令dmesg -t| tail查看,或者查看日志/var/log/message [root@prime complibs]# dmesg -t| tail [一 8月 30 02:22:24 ...
asan asan(addresssanitizer的缩写)是一款面向c/c 语言的内存错误问题检查工具,可以检测如下内存问题: 使用已释放内存(野指针) 堆内存越界(读写) 栈内存越界(读写) 全局变量越界(读写) 函数返回局部变量 内...
linux下内存检测工具:asan asan(address-sanitizier)早先是llvm中的特性,后被加入gcc 4.8,在gcc 4.9后加入对arm平台的支持。因此gcc 4.8以上版本使用asan时不需要安装第三方库,通过在...
如果读过我之前的文章就会知道,程序构建大概需要经历四个过程:预处理、编译、汇编、链接,这里主要介绍链接这一过程。 链接链的是什么? 链接链的就是目标文件,什么是目标文件?目标文件就是源代码编译后但未进行链接的那些中间文件,如linux下的....