Adin

此消, 彼长

曾经有那么一段时间, 一直以为工作磨平了我的激情, 再也没有动力去写我喜欢的代码, 做很多我原来喜欢做的事情.

命运给了我在大学用不完的动力, 让我之后很长一段时间都一度误认为那便是我的平常, 后来才明白, 精力的有限, 才是人生.

有很多我们不喜欢的事物, 分散着我们精力, 让我们无法提起动力去做想做的事, 颇有有气无力的滋味, 也让我们不断陷入自责.

后来突然生了一场病, 给了自己休息的理由, 那段时间没怎么加班.

在持续了半个多月后, 学习的念头愈来愈强烈, 终于拾起了曾经遗落的那些代码.

也许, 这世上的许许多多都是守恒的…

我们要做的, 不是自责为什么又没有投入学习, 而是反思下是什么偷走了我们的精力和激情, 然后去夺回它们.

然后, 静待动力由内而外的推动我们.…

Continue reading...

根据指针获取所申请内存的实际大小 (C/C++)

副标题:根据指针获取malloc空间大小

前言:

有时候程序出现coredump时,需要知道是所申请的内存空间被程序自身越界访问导致,还是双次释放导致。但不太好排查,这里提供一种思路。

一. 为什么free/delete不需要知道所申请空间大小?

C或C++在申请空间时,实际上会申请比预期更多的空间,一部分是因为对齐需要,也可能是刚好有那么一块内存可以满足条件,还有另一个原因是在所申请内存首部存了额外的信息占据了一点空间,该首部其中一部分信息便是该指针对应申请空间的大小。

我们可以看下Glibc实现下该首部的组成结构,其中存储申请空间大小的信息便是mchunk_size变量:

当然,不同的库实现方式可能不同。

二. 由于库版本存在差异,怎么确定所申请空间大小信息在首部前第几个字节

1.复制如下代码到 chunkSizeTst.cpp

2.编译

3.运行

可能会发生segmentation fault,但无所谓,能拿到我们要的结果即可

4.分析输出

Continue reading...

glade: symbol lookup error: glade: undefined symbol: gdk_broadway_display_get_type

未定义的符号原本应该是在 libgtk-3.so.0 里的, 因为Linux共享库的机制, 动态库一迭代, 有些函数可能就弃用了, 接着相关的软件一个接一个地打不开, 这种机制也真是睿智.

作者本来想找一下旧库, 不过兜兜转转实在麻烦, 后面看了下GTK源码还有声明这个函数, 只是没有定义, 返回值是unsigned long, 那么直接打桩就好了.

一. 编写函数

二. 编译生成动态库

三. 软件启动

四. 修改启动图标内部启动命令

 …

Continue reading...

VirtualBox 无法访问共享文件夹

注意修改/media为自己共享目录的路径,最好取最上层目录。

比如如果实际共享目录地址为/media/sf_green,但是只为登录用户加了sf_green的所有者权限,在访问不了media的情况下,sf_green依旧会无法访问…

Continue reading...

Qt学习笔记 – 1

类功能:

以默认创建的工程为例, 创建后会生成一个MainWindow的类, 用于在main函数内部创建, 并通过该类调用.show函数驱动窗口显示.

另外还会生成一个Ui_MainWindow类, 这个类的作用是初始化mainwindow.ui内部定义的一些窗口控件.

 

整个调用流程:

main函数内部创建MainWindow类的实例, 创建时调用其构造函数, 并创建一个Ui_MainWindow类的实例, 保存在MainWindow类内部的Ui_MainWindow指针里.

之后在MainWindow类的构造函数调用setupUi, 将MainWindow实例传入给Ui_MainWindow并真正开始进行MainWindow的一些控件初始化工作.

 

一些奇怪的声明和初始化:

这是在Ui的命名空间里声明MainWindow类, 因为不传进去Ui_MainWindow便无法对该类进行初始化操作, 因为会不认识该类名

 

以上是构造函数被调用时的初始化操作, 看上去是又创建了个MainWindow实例, 实际不是, 这个是在Ui命名空间的类, 实际直接继承自Ui_MainWindow, 并且没有添加新的任何函数, 实际上创建的就是Ui_MainWindow实例, 用来初始化主函数创建的MainWindow实例.…

Continue reading...

Qt 配置备份

环境配色:

编辑器配置:

vim配置:

.qtvimrc

 

界面展示:

Continue reading...

Python 计算两台主机之间的网络时延及时钟差

一. 客户端代码

Continue reading...