嵌入式Linux中文站

Linux编程之给你的程序开后门

阅读(287)

这里说的后门并不是教你做坏事,而是让你做好事,搭建自己的调试工具更好地进行调试开发。我们都知道, 当程序发生异常错误 时,我们需要定位到错误,有时我们还想,我们在不修改程序的前提下,就能通过log来定位错误呢?有人会说,我在我的程序里加多点打印就好了,程

Linux编程之定制带级别的log

阅读(284)

我的开发组长曾经说过这么一段话一个优秀的程序员不在于他写代码有多快,也不在于他能不能实现这个模块的功能,要实现业务实现功能谁不会啊,重要的是他的解决能力,也就说当程序出现错误时你能不能够快速定位到错误并解决它。 是的,我也非常赞同,代码不可能完美,也可能有千奇百怪的bug,尤其是新手,犯的错误就更多了,所以,我们写程序时应有自己的一套debug手段,有一套自己的LOG的方法,一旦程序发生错误,我们不需要再往程序中加繁琐的打印就可以定位到错误位置,这样才能加快自己的开发速度。 那怎么才算有一套高效的debu

LINUX 日志级别(LOGLEVEL)详解

阅读(291)

前几天,我在想printk中到底是哪些信息会打印到console上,哪些东西可以通过dmesg来查看。参考了网上一些资料以及自己做的一些实验,总结一下Linux中的console loglevel以及printk, dmesg知识。 只有当printk打印信息时的loglevel小于console loglevel的值(即:优先级高于console loglevel),这些信息才会被打印到console上。 改变console loglevel 的方法有如下几种: 1.启动时Kernel boot opt

Linux防火墙iptables详解

阅读(256)

1 Linux防火墙概述 Linux防火墙实际指的是Linux下的Netfilter/Iptables。Netfilter/Iptables是2.4.x/2.6.x版本Linux内核集成的IP信息包过滤系统。 查看Linux内核版本 Netfilter/Iptables 信息包过滤系统可以当成一个整体, netfilter是内核的模块实现 , iptables是对上

GDB调试程序用法

阅读(161)

GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓寸有所长,尺有所短就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停

强大的C/C++ 程序调试工具GDB

阅读(105)

分享下强大的C/C++ 程序调试工具GDB 1.基本调试 这里只列举最最常用的GDB命令。 1.1 启动GDB gdb program :准备调试程序。也可以直接进入gdb,再通过file命令加载。 1.2 添加断点 b function :为函数设置断点。b是break的缩写,除了函数名,还可以是地址、当前执行处的+/-偏移等。 1.3 运行程序 run args :开始运行程序,run后面可以加程序需要的参数,就像在命令行正常运行时那样。 1.4 单步调试 s/n/si/c/kill:s即step i

使用GDB命令行调试器调试C/C++程序

阅读(99)

没有调试器的情况下编写程序时最糟糕的状况是什么?编译时跪着祈祷不要出错?用血祭召唤恶魔帮你运行程序?或者在每一行代码间添加printf(test)语句来定位错误点?如你所知,编写程序时不使用调试器的话是不方便的。幸好,linux下调试还是很方便的。大多数人使用的IDE都集成了调试器,但 linux 最著名的调试器是命令行形式的C/C++调试器GDB。然而,与其他命令行工具一致,DGB需要一定的练习才能完全掌握。这里,我会告诉你GDB的基本情况及使用方法。 安装GDB 大多数的发行版仓库中都有GDB Deb

GDB调试命令总结

阅读(159)

1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息。 gdb program //最常用的用gdb启动程序,开始调试的方式 gdb program core //用gdb查看core dump文件,跟踪程序core的原因 gdb program pid //用gdb调试已经开始运行的程序,指定pid即可 gdb attach pid //用gdb调试已经开始运行的程序,指定pid即可 2.调试命令 (1)执行命令模式 -ba