高科技:GDB回溯调试

高科技:GDB回溯调试

也许大家知道,GDB 版本7.0 (2009年9月release) 会是第一次开始支持Reversable Debugging (回溯调式技术),这是一种可以让在debug程序时当我们运行单步调试或是运行到断点时,可以以逆向执行程序的一种技术。(这是GNU的新闻链接

下面是GDB7.0版本所支持的回溯调试的命令,其中包括,continue,step,以及调试方向的设置。

  • reverse-continue (‘rc’) — 继续程序运行到断点,但是是逆向运行程序。
  • reverse-finish — 逆向运行程序直到跳出本层函数。
  • reverse-next (‘rn’) — 语句单步向后跟踪程序。
  • reverse-nexti (‘rni’) — 指令单步向后一条指令。
  • reverse-step (‘rs’) — 向后执行一条语句,单步进入。
  • reverse-stepi — 向后执行一条指令,单步进入。
  • set exec-direction (forward/reverse) — 设置程序执行方向,向前或向后。
  • 阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 5.00 )
    Loading...
    算法和数据结构词典

    算法和数据结构词典

    我们知道,在编程的世界里,主要就是两个事,用一定的算法去处理一定的数据。算法可以理解为业务逻辑流程,而数据自然一定是按某种结构来存放,这就是数据结构。我们知道,数据结构的修改一定会导致算法的修改,我们也知道,数据结构直接关系到了整个程序的繁简性,高效性。而算法则是关系到数据处理的时间、空间性能,以及日后的扩展和维护。这两个东西是计算机科班出生的人或是需要学习编程的人必需要注意的两件头等大事。

    下面这个网站,由 Software and Systems Division, Information Technology Laboratory 创建。

    http://xlinux.nist.gov/dads/

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 5.45 )
    Loading...
    TCP网络关闭的状态变换时序图

    TCP网络关闭的状态变换时序图

    TCP共有11个网路状态,其中涉及到关闭的状态有5个。

    在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。

    下是是根据W.Richard Stevens的《TCP/IP详解》一书的TCP状态转换图。

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 4.14 )
    Loading...
    非常简单的Python HTTP服务

    非常简单的Python HTTP服务

    如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么, Python 可能帮助你。使用Python可以完成一个简单的内建 HTTP 服务器。于是,你可以把你的目录和文件都以HTTP的方式展示出来。佻只需要干一件事情,那就是安装一个Python。

    实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的HTTP服务程序来说是很简单的事情,在Python下,只需要一个命令行。下面是这个命令行:(假设我们需要共享我们的目录 /home/haoel 而IP地址是192.168.1.1)

    $ cd /home/haoel
    $ python -m SimpleHTTPServer
    

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 5.00 )
    Loading...
    CentOS上php的问题及Selinux安全设置

    CentOS上php的问题及Selinux安全设置

    最近有位站长在用我们WebIM客户端的时候,无法登录我们的WebIM服务器,十分惊讶。 在我们的用户里尚属首例,其实更惊讶的是我的CentOS也遇到了同样的问题。然后分析了这位站长的HttpResponse , Shamee :( 一样的OS.

    搜了一下,发现的解决方法都是在代码上。 我想可能关键词有错误,因为我坚信我的问题肯定不在代码上,应该是来自OS本身的限制。于是重新debug了一下代码,报错 permission (13) connection。然后直接在洋人的邮件列表里搜了一下。

    问题确定了 是SeLinux(http://zh.wikipedia.org/wiki/SELinux)安全策略的限制。

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (5 人打了分,平均分: 4.80 )
    Loading...
    微软在从Google赢取搜索引擎市场份额

    微软在从Google赢取搜索引擎市场份额

    7月到8月,微软市场份额从8.9%到了9.3%;  Google掉了1.7%

    Bing显然让Google有些紧张,不仅Bing在界面上赢得了一部分消费者的好评,而且其在某些垂直领域的深度整合使得Bing的盈利能力具有了相当竞争力。相信Google在幕后紧锣密鼓的测试新界面和新搜索功能的同时,也在严阵以待地部署销售团队(如果经济萧条好转,旅游和健康将会是最先复苏的领域,也是Bing目前占有优势的战场)

    拭目以待吧!

    原文地址:http://news.bbc.co.uk/2/hi/technology/8268356.stm

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (4 人打了分,平均分: 4.75 )
    Loading...
    C++的std::string的“读时也拷贝”技术!

    C++的std::string的“读时也拷贝”技术!

    C++的std::string的读时也拷贝技术!

    嘿嘿,你没有看错,我也没有写错,是读时也拷贝技术。什么?我的错,你之前听说写过时才拷贝,嗯,不错的确有这门技术,英文是Copy On Write,简写就是COW,非常’牛’!那么我们就来看看这个’牛’技术的效果吧。

    我们先编写一段程序

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 4.18 )
    Loading...
    WebTTY!太酷了!

    WebTTY!太酷了!

    这真是一件很Cool的事,在Web上操作Linux,请访问下面这个链接:

    http://19.testape.com/webtty_page.php

    于是你会看到页面中间的红色,一个小操作系统启动了,红色的最下方是一个bash-2.05b#

    试着输入一下命令吧。

    bash-2.05b# uname -a
    Linux (none) 2.6.18 #2 Mon Dec 29 19:47:06 UTC 2008 i686 GNU/Linux

    命令支持的不多,好像只是一个单机版的虚拟机,一但你打开网页时就起动一个。当然,也不排除其完全是假的,因为太简单了,一切都可以fake出来。

    好烂啊有点差凑合看看还不错很精彩 (3 人打了分,平均分: 5.00 )
    Loading...
    Alice梦游UNIX仙境

    Alice梦游UNIX仙境

    本文来源:http://www.pma.caltech.edu/Publications/alice.in.unix.land.html
    (这是一篇1989年的文章)

    Alice 正在在她的显示器上读着一些信息,她开会怀疑所有的事情并不是应该的那样。“程序太大了,而无法适应内存”,她读到。

    “一个很奇怪的事情”,她说,“我所做的也就是在启动我的字处理程序会运行了14个TSR(terminate-and-stay-resident 常驻程序)。所有这些程序需要使用4M的内存,我希望我能使用超过640K以上的内存”。

    就在那个时候,一个小的白色的顾问(一个非常白的顾问)跑过了房间。“哦,我的外套和领带”,他说到,“我要迟到了。并且是每小时150元。”Alice本想对他说点什么,他却跳到了Alice的显示器里并到在操作系统后面消失了。

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (4 人打了分,平均分: 4.75 )
    Loading...
    编译vim解决中文支持

    编译vim解决中文支持

    最近开始抛弃Ubuntu折腾CentOS 5.3(注:无意挑起OS之争),每当换一个OS,第一个配置的就是VIM。

    介于以前在MacOSX的编译经验,直接三部曲

    ./configue && sudo make && sudo make install

    解决的问题。  但在CentOS之后发现无论如何都不支持中文。

    通过文档的翻阅和google的搜索,发现了问题出现在编译上。vim支持中文需要2个基本feature:multi_byte和iconv。

    阅读全文 Read More

    好烂啊有点差凑合看看还不错很精彩 (4 人打了分,平均分: 4.50 )
    Loading...