Tools
Date: . Last updated: .
Link
library
ldconfig -p | grep libevent
command
- grep -iwrn --color=auto "to_upper" /usr/include/boost/
- find /usr/include/boost -name time.hpp --print
- find /usr/include/boost -name "*.hpp" | xargs grep -irn --color=auto "test"
c
- indent
- valgrind
- pkgconf
repost
linux timer
redis
source code
阅读源码,我感觉最重要的是理解源码背后的意图,源码的执行流程。至于每一句话的意图,可以在理解了大体结构之后再细究。
1.对于 js, c++等源码的阅读,我一般是打一些断点,然后研究 call stack,这样可以很方便地知道程序大体上的执行路径。
2. 等对程序大体流程有了一些了解一后,我会尝试修改已有的一些函数。然后验证自己对于这些内部 api 的使用是否正确。
3. 我会仔细阅读每一个功能的相关类的 API 文档,主要是一些 public API 的文档,当然如果作者没写文档这一步也不可错过。通过阅读 API,可以知道这些封装大概是干什么用的
4. 我会使用这些 API 去组装出一些新的玩意。
5. 我会阅读一些高阶的文档,比如如何扩展一个模块,如何写一个插件。然后通过写一些扩展来增强我对代码库的理解。
6.最后,我会重新发明一个最小能够工作的轮子,这样对于核心工作原理和算法会理解地更加深入。如果我的轮子不行,就加入一个好的开源轮子里面。
以上就是我关于如何高效阅读源码的一些体会。
Linux C/C++ 环境
ulimit -a 查看所有
ulimit -c unlimited 设置core文件
gdb + 程序名
gdb attach pid
gdb --args nginx ../conf/nginx.conf
set args ../conf/nginx.cof
mysql -h127.0.0.1 -P3306 -uroot -p123456
mysql -h101.37.25.166 -P3306 -uroot -p123456
Linux Command
Linux News
Linux Kernel