- 博客(10)
- 资源 (30)
- 收藏
- 关注
翻译 关于段错误的看法。。。
Another important difference between kernel programming and application programmingis in how each environment handles faults: whereas a segmentation faultis harmless during application development
2013-05-30 16:17:44 1075
原创 gdb几个有意思的用法
gdb比较有意思的用法。1. 调试core dump文件时,可以用frame查看堆栈的某个位置(当然gdb调试也可以)。这样可以看到其他位置的变量,而不仅仅是出错的那个地方。2. 自定义函数,譬如我需要频繁的执行c然后bt,可以定义个函数:(gdb) define doit>c>bt>end然后执行这个函数就好了:(gdb) doit然后不断回车就可以了。3.可以用
2013-05-29 11:55:22 1499
原创 KDD:HelloWorld
源文件:// hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "hello, world, init\n"); return 0;}static void hello_exit(void){ pri
2013-05-28 09:53:56 1333
原创 ARP:地址解析协议
以太网内部是用MAC地址传输的,ARP就是IP到MAC的映射。本机的IP和MAC信息:[winlin@dev6 ~]$ ifconfigeth1 Link encap:Ethernet HWaddr 08:00:27:55:0F:09 在hosts中添加一个地址记录:vi /etc/hosts192.168.20.190 winlin002其中,wi
2013-05-11 22:06:59 5569
原创 NAT穿透,UDP打洞程序
在看NAT穿透和UDP打洞原理,网上都是讲原理,没有程序,我把程序写出来。server.py,辅助打洞的服务器。peer.server.py,被打洞的节点。peer.client.py,主动打洞的节点。基本原理是:1. peer.client向peer.server发个包,把自己的洞打好,这样peer.server可以给peer.client发包。这个包会被NAT拒绝掉,所
2013-05-07 18:22:23 4550
原创 找了2周的一个bug,鬼使神差的重现了这个bug
从2013-04-28找到2013-5-27,一共10天。提交了16次修正代码。有时候是Segmentation fault.,有时候是Illegal instruction。死在了一个不可能死的地方(当然所有地方都不可能死,在程序员看来)。最开始怀疑是用了空指针,所以加了很多assert(p != NULL),发现不管用。然后用tcmalloc找,找到了一个,但是还是
2013-05-07 09:06:27 1772
原创 python2.6写看门狗并发邮件
top -b 就可以去掉特殊字符。python写看门狗很合适,永不死,以及方便获取各种信息。若程序死掉,获取一些信息,然后重启程序,发邮件。发送的邮件为html格式,比文本更方便阅读。#!/usr/bin/python2.6# -*- coding: utf-8 -*-import time;import os;import sys;import signal;im
2013-05-05 21:49:43 2609
原创 造第一个SIP包REGISTER
在网上看到SIP都是直接讲明文,没有谁把代码贴出来的。用Python2.6写了一个REGISTER消息,用wireshark抓包可以抓到,不用服务器端支持,是UDP的。import socket;import time;s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);s.sendto('REGISTER sip:192.
2013-05-04 17:14:57 1825
原创 flash p2p(RTMFP)协议
adobe在2012-12-13公开了flash p2p的协议,最新的更新是2013-4-15.http://tools.ietf.org/html/draft-thornburgh-adobe-rtmfp-06在http://www.rtfmp.net上有协议的链接。翻译第一段:1. 简介 Adobe的RTMFP是为在IP网络中的点对点数据传输服务设计的。RTM
2013-05-04 10:17:34 3398
原创 还是使用tcmalloc检查内存错误
内存越界问题是最难查的c/c++问题,valgrind很有用,有时候不能用valgrind(譬如代码中有setjmp和longjmp时),可以使用tcmalloc库查内存越界问题。
2013-05-03 15:34:29 4479
Pattern.Oriented.Software.Architecture.Volume.2
2012-11-29
mp4 file format引用文档
2012-11-04
The.Cpp.Programming.Language.Special.Edition
2012-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人