摘要: 有时候在阅读开源的库的源码时,可能会需要写个demo进行调试分析,这样会更直观。我们会需要去链接经过源码编译出来的动态库,而这个动态库一般都是没有make install的,也就是库未安装到系统默认搜索路径,在链接的时候会在makefile里面指定库的链接搜索路径:-Lpath -lmylib,编译 阅读全文
posted @ 2017-06-27 20:29 thammer 阅读(7205) 评论(0) 推荐(1)
摘要: 转自:http://www.jianshu.com/p/7158568e4867 我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输安全性的要求也越来越高,HTTPS 协议因此出现。如上图所示,在 HTTPS 加密中真正起作用的其实是 阅读全文
posted @ 2017-06-27 10:06 thammer 阅读(6057) 评论(0) 推荐(2)
摘要: 本文转载至 http://program-think.blogspot.com/2010/02/introduce-digital-certificate-and-ca.html ★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥、晦涩。俺先拿一个通俗的例子来说事儿。 ◇ 普通的介绍信 想必大 阅读全文
posted @ 2017-06-23 15:37 thammer 阅读(558) 评论(0) 推荐(0)
摘要: 测试unix数据报套接字时,一个程序收,一个程序发,分别绑定自己的socket。结果在收的部分,返回的发送方的地址总是空的,但是返回的地址长度又是对的。 仔细对比unp的代码,发现 slen = 0 这行改成 slen = sizeof(strcut sockaddr_un) 结果就对了,细看man 阅读全文
posted @ 2017-03-08 09:56 thammer 阅读(3885) 评论(0) 推荐(0)
摘要: linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal 对于Action的描述 可以看到产生core这个动作的信号不止SIGSEGV这一个。通常程序中有对内存的Invalid reference就会产生SIGSEGV,具体描述见http: 阅读全文
posted @ 2016-11-03 15:48 thammer 阅读(7303) 评论(0) 推荐(1)
摘要: 1.单进程的调试 常规的通过gdb cmd这种方式开启调试,特别说明的是通过attach的方法附加到一个指定的进程上去进行调试,这种方法适合于调试一个已经运行的进程,具体用法: gdb -p [pid] 此时被attach的进程会阻塞,进入T模式(ps 命令看到STATE为T),如果调试完毕了,使用 阅读全文
posted @ 2016-09-02 16:18 thammer 阅读(9991) 评论(0) 推荐(1)
摘要: 什么是守护进程?其实感觉守护进程并没有什么明确的定义,只是守护进程有一些特征,这是它需要遵循的。 守护进程的第一个特征是长时间在后台运行的程序,并且主要是为了提供某种服务,而为了能够让服务尽可能随时都可用,就要求这个服务是一直运行的,于是守护进程就守护着这个服务不挂掉。linux里面常见的守护进程一 阅读全文
posted @ 2016-08-10 21:17 thammer 阅读(1599) 评论(0) 推荐(0)
摘要: 一直以来,以为shell脚本中经过export后的变量会影响到执行这个shell的终端中的环境变量。环境变量这个概念不是shell所独有的,而是linux里面进程所拥有的,shell解释器运行起来就是一个进程,这样它也就有了自己的环境变量。通常linux下main函数写法有: 常见的为前2种写法,第 阅读全文
posted @ 2016-07-28 15:53 thammer 阅读(1546) 评论(0) 推荐(0)
摘要: tail用于输出文件末尾部分。一个比较有用的功能是tail + grep实现类似于安卓开发时调试使用的logcat,具体操作是: 一般我是用SecureCRT连接linux,然后使用SecureCRT记录log的功能将文件写入到linux下,然后使用: tail -f logfile | grep 阅读全文
posted @ 2016-07-20 19:30 thammer 阅读(373) 评论(0) 推荐(0)
摘要: http://mirror.bjtu.edu.cn/gnu/ 阅读全文
posted @ 2016-07-18 17:06 thammer 阅读(1585) 评论(0) 推荐(0)