摘要:最近在做Android,其中一个任务是写一个能在Linux命令行运行的测试AP,运行这个AP就能关闭设备电源,即Power Off。在 Linux内核中已经找到了关闭电源的函数kernel_power_off(),然后也知道了在sys_reboot()函数中调用 kernel_power_off()...
阅读全文
随笔分类 - Linux
摘要:NAME syscall - 间接系统调用SYNOPSIS #define _GNU_SOURCE #include #include /* For SYS_xxx definitions */ int syscall(int number, ...);DESCRIPTION syscall()...
阅读全文
摘要:网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0、eth1...... ethX。而普通猫和ADSL的接口是pppX,比如ppp0等;机器中所有可用网卡及名字:参考:linux网络配置相关命令、虚拟网络接口...
阅读全文
摘要:网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0、eth1...... ethX。而普通猫和ADSL的接口是pppX,比如ppp0等;机器中所有可用网卡、名字、配置文件:dmesg | grep eth :...
阅读全文
摘要:pthread_mutex_initl头文件:#include l函数原型:int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);pthread_mutex_t...
阅读全文
摘要:自己想了解下关于system v,在网上看到一篇详细的说明,与大家分享一下,原文地址http://hi.baidu.com/tekuba/item/570887775696542e5c178918以前对glibc,POSIX等的关系一直很迷惑。这是今天在网上找到的说明glibc,POSIX,syst...
阅读全文
摘要:通过前面安装Linux系统介绍,紧接着进入搭建Linux开发环境的第二步,选择C++开发工具,以及必要的客户端软件。从而完整的搭建一个Linux下C++开发的环境,便于初学者在该环境下能够很好的学习。一、代码编辑器 由于采用Windows下开发Linux的C++程序,那么选择一个在Windows中方...
阅读全文
摘要:1. Linux开发工具的使用Vim编译的使用Gdb调试工具的使用Makefile的编写linux跟踪调试SSH的使用subversion的使用1. Linux开发工具的使用Vim编译的使用Ibm的Vim实用技术http://www.ibm.com/developerworks/cn/linux/l...
阅读全文
摘要:摘要:某些进程在结束前必须要处理一些额外的过程才能结束,尤其是数据存储的模块,进程停止前为保证数据的完整性可能要做一些事情,如果发生段错误,这时就需要先截获segv信号,处理完后再让程序出core一般进程收到段错误信号默认是dump core文件然后退出,但有些进程在退出时需要处理额外的过程才能结束...
阅读全文
摘要://简单的捕捉段错误信号信号处理程序,通过signal来捕捉错误.#include#include#includevoidhandler(ints){if(s==SIGINT)printf("nowgotainterruptsignal");if(s==SIGSEGV)printf("nowgota...
阅读全文
摘要:我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难 免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个 内存访问...
阅读全文
摘要:在实际开发过程中,大家可能会遇到段错误的问题,虽然是个老问题,但是其带来的隐患是极大的,只要出现一次,程序立即崩溃中止。如果程序运行在PC中,segment fault的调试相对比较方便,因为可以通过串口、显示器可以查看消息,只要程序运行,通过GDB调试工具即可捕捉产生segment fault的具...
阅读全文
摘要:LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2为...
阅读全文
摘要:strace和gdb是Linux环境下的两个常用调试工具,这里是个人在使用过程中对这两个工具常用参数的总结,留作日后查看使用。strace调试工具strace工具用于跟踪进程执行时的系统调用和所接收的信号,包括参数、返回值、执行时间。在Linux中,用户程序要访问系统设备,必须由用户态切换到内核态,...
阅读全文
摘要:本文为“在C/C++中捕获段错误,打印出错的具体位置”的续篇,进一步解决涉及动态链接库的情况。背景知识:·linux/unix下动态链接库的基本原理·/proc/pid/maps文件的基本格式·动态链接库:在进程执行过程中动态加载,进程间可以共享代码,可用在发布升级包等场合概述: 用户自己编写的代码...
阅读全文
摘要:修订:2013-02-16其实还可以使用glibc的backtrace_symbols函数,把栈帧各返回地址里面的数字地址翻译成符号描述的修订:2011-06-11背景知识:· 在linux/unix中的信号处理机制,知道signal函数与sigaction的区别· 段错误的概念,CPU中断处理的步...
阅读全文
摘要:最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解...
阅读全文
摘要:在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能...
阅读全文
摘要:strace工具是一个非常强大的工具,是调试程序的好工具。要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件。具体步骤如下:1.下载 strace-4.5.16移植strace调试工具到arm平台 由Linux系统中文网(Linux521.com)编辑收集整理,除Linux521...
阅读全文
摘要:在 Linux 上找出并解决程序错误的主要方法您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起...
阅读全文

浙公网安备 33010602011771号