Web Analytics

Go:值与指针

本文永久链接 – https://tonybai.com/2023/05/05/go-value-and-pointer 1. 计算机中的值 在百万年的演化历史中,人类对事物的属性进行了抽象,有了数量、精度、信息等概念的表示,对应的我们称之为整数、小数、文本文字等。计算机出现后,我们使用计算机对真实世界的问题进行建模,通过计算机的高效计算解决这些问题并输出答案。为了建模,计算机需要建立对上述基本概念的抽象和表示,于是有了类型与值的概念。 ...

May 5, 2023 · 11 min · Tony Bai

共享库中的符号链接

清晨,部门新来的一位小兄弟打来求助电话,说是系统启动的时候出现类似:“ld.so.1: testmain: 致命的: 重定位错误: 文件./libtestshared.so: 符号static_add: 参照的符号没有找到"的错误。这个系统是05年开发的一个复用度很高的自研产品,后续项目只需在其基础上做少量二次开发工作即可满足新功能的要求。为了做到一定的通用性,我们使用了类似插件的框架,这样系统在启动的时候会根据配置加载一些’共享库’(.so文件),而这个小同事反映的问题就出在这。 ...

February 3, 2008 · 6 min · Tony Bai

也谈’SIGBUS和SIGSEGV’

SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情,弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的。 我们来看两段程序: //testsigsegv.c int main() { char *pc = (char*)0×00001111; *pc = 17; } ...

December 19, 2007 · 3 min · Tony Bai

一个很有意思的Bug

这个Bug源于昨天凌晨的一次版本升级失败。睡了一大觉后,下午回到公司,重现了这个问题并找到了原因,发现这的确是一个’很有意思的Bug’。 ...

December 18, 2007 · 3 min · Tony Bai

'符号连接'那些事儿

我们在编译自己开发的程序或者一些开源软件的时候,常常遇到类似如下的编译器错误信息: 未定义 文件中的 符号 在文件中 i /var/tmp//ccU4sj6I.o func /var/tmp//ccU4sj6I.o ld: 致命的: 符号参照错误. 没有输出被写入a.out collect2: ld returned 1 exit status ...

December 8, 2007 · 7 min · Tony Bai

当数组访问越界后

下午到ChinaUnix C/C++版看了看,发现一个比较有意思的问题,一位兄弟在其帖子中问一段很简单的程序明显有数组越界访问之错误,可程序为什么运行起来却’安然无恙’,我看看了看,也给出了我自己的回复,晚上下班后又想想了这个问题,决定写一篇blog说说。 这位仁兄的程序(据他个人说来源自’GNU/Linux编程指南’)是这样的: ...

June 16, 2006 · 4 min · Tony Bai