Linux-使用syslog记录调试信息】的更多相关文章

1.有三个函数:openlog.syslog.closelog 2.一般的log信息都在操作系统的/var/log/messages这个文件中存储着,但是ubuntu中是在/var/log/syslog文件中的. 3.syslog的工作原理 (1).操作系统中有一个守护进程syslogd(开机运行,关机时结束),这个守护进程syslogd负责进行日志文件的写入和维护. (2).syslogd是独立于我们任意一个进程而运行的.我们的当前进程和syslog进程本来是没有任何关系的,但是我们当前进程可…
如果不去除调试信息,直白点说基本上是把代码公开了,不要带-g参数,还有就是需要带 -O2 -fvisibility=hidden -s 生成程序后可以用命令strip进一步去除不需要的符号 strip bin…
1.有三个函数:openlog.syslog.closelog 2.一般的log信息都在操作系统的/var/log/messages这个文件中存储着,但是ubuntu中是在/var/log/syslog文件中的. 3.syslog的工作原理 (1).操作系统中有一个守护进程syslogd(开机运行,关机时结束),这个守护进程syslogd负责进行日志文件的写入和维护. (2).syslogd是独立于我们任意一个进程而运行的.我们的当前进程和syslog进程本来是没有任何关系的,但是我们当前进程可…
如有转载,请注明出处与本文连接,谢谢! 修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建Windows虚拟机),这里有一篇很好的搭建方法:Xen Serial Console,可是光阅读它还不够,中间还会遇到许多问题,本博文介绍一下环境搭建的经过,以及遇到的问题的解决办法,希望对大家有用. 得到 XEN 的 Debug String 需要靠串口(Serial Port)来接收并输出,除…
最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0).因为后期要使用ttySAC0作为上层应用通信串口,所以要把所有的调试信息都给去掉.参考网上的几篇文章,自己做了如下修改,终于把调试信息重定向到ttySAC1上了,在这做下记录. 参考文章有:http://blog.csdn.net/longtian635241/article/details/7867730 http://sunnyshine…
  前两天在群里看到在讨论如何把debug版中的符号表加到release版本中,觉得这个非常有用,所以学习一下. 使用的工具是objcopy. 如果要生成单独的调试信息文件,命令如下: objcopy –only -keep -debug foo foo.dbg 如果要去除调试信息(还可以使用strip命令),命令如下: objcopy --only -keep -debug foo foo.dbg 如果要添加调试信息文件链接,命令如下: objcopy --add -gnu -debuglin…
转自:http://blog.chinaunix.net/uid-25120309-id-3359929.html syslog 系统日志应用  1) 概述       syslog是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提供了访问系统的日志信息.因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息.       几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP…
参考博客与书籍: <Linux设备驱动开发详解> <Linux设备驱动程序> http://blog.chinaunix.net/uid-24219701-id-2884942.html 对于驱动程序设计来说,核心问题之一就是如何完成调试.当前常用的驱动调试技术可分为: 1. 打印调试 printk 重定向控制台消息 消息记录 开启和关闭消息速度限制 打印设备编号 2. 调试器调试 gdb kdb内核调试器 kgdb补丁 3. 查询调试 使用/proc文件系统 ioctl方法 4.…
转自:https://www.cnblogs.com/vigarbuaa/archive/2013/02/05/2892544.html Linux下C语言编程的-把程序输出信息加到系统日志里去关键词: Linux    系统日志    syslog    服务程序    syslogd                                           我们的程序一般都会产生输出信息.但是服务器程序一般却不希望输出信息到屏幕上,因为没有人盯着你的程序执行.所以我们要把一些信息写…
搞电子都知道,电路不是焊接出来的,是调试出来的.程序员也一定认同,程序不是写出来的,是调试出来的.那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入门者提供一些帮助.调试工具能让我们能够监测.控制和纠正正在运行的程序.我们在运行一些程序的时候,可能被卡住或出现错误,或者运行过程或结果,没能如我们预期,此时,最迫切需要明白究竟发生了什么.为了修复程序,剖析和了解程序运行的细节, 调试工具就成为了我们的必备工具,工于善其事,必先利其器.在Linux…
在Linux中如何利用backtrace信息解决问题 一.导读 在程序调试过程中如果遇到程序崩溃死机的情况下我们通常多是通过出问题时的栈信息来找到出错的地方,这一点我们在调试一些高级编程语言程序的时候会深有体会,它们通常在出问题时会主动把出问题时的调用栈信息打印出来,比如我们在eclipse中调试java程序时. 当这些换到Linux上的C/C++环境时情况将变的稍微复杂一些,通常在这种情况下是通过拿到出问题时产生的core文件然后再利用gdb调试来看到出错时的程序栈信息,这是再好不过的了,但当…
前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题.本文将简单介绍一下这些命令. 示例程序 我们用一个小程序,来帮助后面我们对这些命令的描述,程序清单cmdTest.c如下: #include<stdio.h>int test(int a,int b){    return a/b;}int main(int argc,char *argv[]){    int a = 10;    int b = 0; …
调试解决程序的漏洞,是程序员最基本的技能之一.用惯了图形化IDE,在目前使用gtest框架进行单元测试,需要通过xshell远程连接Linux虚拟机进行C++代码的调试时,觉得很不适应.经过几天查资料,和实践,找到了几种简单方便的调试方法. 1.gdb GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具.它没有图形化的界面,但是并没有想象的那么难用,甚至在某些方面比图形化的调试工具做得更好. 常用命令列表 命令 解释 简写 file 装入想要调试的可执行文件 无 list 列出产生…
reference to : http://www.linuxidc.com/Linux/2014-02/96341.htm Android 开发中,java 可以方便的使用调试信息Log.i, Log.d ...,Jni层可否使用呢?答案是肯定的. 1 为方便使用,先进行宏定义: eben_hpc_log.h内容如下: #ifndef _Included_hpc_Log#define _Included_hpc_Log#ifdef __cplusplusextern "C" {#en…
Linux的进程的信息都记录在/proc/<pid>/下面,其实常用的ps.top命令也是从这里读取信息的.常用的信息有: cmd(命令).cmdline(完整的命令行参数).envrion(环境变量).status(详细状态) 一些内容,例如cmdline.envrion中的各部分不使用换行,而是用null分隔,所以需要借助tr命令进行一下转换: cat /proc/20938/cmdline | tr "\000" "\n" Solaris下面的/p…
转载自http://www.miui.com/thread-75063-1-1.html 1. verbosegc一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息.dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做.dalvik虚拟机使用自己的一套LOG机制来输出调试信息. 如果在Linux下运行adb logcat命令,可以看到如下的输出:D/dalvikvm(  745): GC_CONCURRENT freed 199K, 53% free 3…
32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT是<程序员的自我修养:链接,转载于库>的作者俞甲子写的小型的C运行时库.里面提供了printf,malloc,free,fopen等比较常用的函数实现. 之所以要捣鼓这个东西,是因为要自己写一个链接器,链接标准库的时候出了麻烦,一些符号在整个libc中都找不到定义,标准库又太大,研究源码,翻文档都…
[shell输出调试信息] 1.使用trap命令 trap命令用于捕获指定的信号并执行预定义的命令. 其基本的语法是: trap 'command' signal 其中signal是要捕获的信号,command是捕获到指定的信号之后,所要执行的命令.可以用kill –l命令看到系统中全部可用的信号名,捕获信号后所执行的命令可以是任何一条或多条合法的shell语句,也可以是一个函数名. shell脚本在执行时,会产生三个所谓的“伪信号”,(之所以称之为“伪信号”是因为这三个信号是由shell产生的…
记录一个使用vs2008碰到的问题: 今天在用vs2008的时候,想封装一个lib库,建了一个c++的lib工程,后来为了测试函数功能,想偷懒就直接在工程中加了个main函数,并且把工程属性properties->General->Configuration Type 从lib改成了exe类型.但是调试的时候,提示找不到调试信息,弹出如下提示框: Error Msg: Debugging information for "libtest.exe" cannot be fou…
/*************************************************************************** * 如何从Linux源码获知版本信息 * 声明: * 本文主要在移植BQ27441-G1电量监测计驱动过程中,发现I2C获取的值有异常, * 之前移植官方的驱动发现驱动与当前版本的Linux版本好像是不兼容的,但没有进行 * 更进一步的深究,这里记录一下. * * 2016-2-15 深圳 南山平山村 曾剑锋 *****************…
http://www.cnblogs.com/li-hao/archive/2011/09/25/2190278.html 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 (1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不会生成core文件. (2)使用ulimit -c filesiz…
转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题,这个时候就需要core文件来帮助调试. 内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关.若结果…
看到一篇介绍 linux c/c++ 开发调试技巧的文章,感觉挺使用,哪来和大家分享. 通向 UNIX 天堂的 10 个阶梯Author: Arpan Sen, 高级技术人员, Systems Documentation, Inc. (SDI) 讨论几种可以帮助 C++ 开发人员节省时间的技巧和免费工具. C++ 开发人员在日常工作中通常要完成多个任务:开发新软件.调试其他人的代码.制订测试计划.为每个计划开发测试.管理衰退软件(regression suite)等等.在多种角色之间频繁转换会消…
在Linux应用程序开发中,最经常使用的调试器是gdb. 一.启动和退出gdb gdb调试的对象是可运行文件,而不是程序的源码.假设要使一个可运行文件能够被gdb调试,那么使用编译器gcc编译时须要增加-g选项.-g选项告诉gcc在编译时增加调试信息,这样gdb才干够调试这个被编译的程序. 1.编译test.c源程序 gcc -g test.c -o test ./test test.c中的源代码为: #include<stdio.h> int get_sum(int n) { int sum…
Linux 操作命令列表记录 SSH登录 登录 ## 范式 ssh [username]@[host] ## 例 ssh -p 1222 root@10.0.0.1 使用非默认端口(ssh默认端口22)登录 ## 范式 ssh -p [port] [username]@[host] ## 例 ssh -p 1222 root@10.0.0.1 Linux:查看文件内容 cat ## 范式: cat [fileName] ## 例:查看文件内容 cat /var/log/laohou.log ##…
1. 内核中通过lookup_symbol_name获取函数名称 内核中很多结构体成员是函数,有时可能比较复杂不知道具体使用哪一个函数.这是可以通过lookup_symbol_name来获取符号表名称. int lookup_symbol_name(unsigned long addr, char *symname) { symname[] = '\0'; symname[KSYM_NAME_LEN - ] = '\0'; if (is_ksym_addr(addr)) {-----------…
问题描述: 今天在做rpm相关操作的时候,发现报错,并且还不知道如何入手来解决问题,就左查右查的问题还是没有解决,后来就想,rpm能否打印debug信息,然后也百度了,也没有找到,后来想我为啥不看看rpm的帮助文档呢,就看了下,然后发现通过 -vv参数就能实现这个功能. 示例: [root@testvm03 log]# rpm -e -vv mysql-server--.el6_8.x86_64 #备注:中划线后面是两个v,不是W D: loading keyring from pubkeys…
Delphi RAD Berlin Event Log.OutputDebugString 输出调试信息,仅在win VCL下可以用.OutputDebugString(PChar('helloword'));调试窗口输出delphi FireMonkey 下用 Log.d('debugging'); 可用于Android,IOS程序调试!这样在断点调试的时候非常方便! log.TimeStamp('run');log.TimeStamp('run');log.TimeStamp('run');…
gcc/g++编译器 对于.c格式的C文件,可以采用gcc或g++编译 对于 .cc..cpp格式的C++文件,应该采用g++进行编译 常用的选项: -c  表示编译源文件 -o  表示输出目标文件 -g  表示在目标文件中产生调试信息,用于gdb调试 -D<宏定义> 编译时将宏定义传入进去 -Wall  打开所有类型的警告. 1. gcc编译过程:预编译->编译->汇编->链接 当我们进行编译的时候,要使用一系列的工具,我们称之为工具链. 其中包括:预处理器,编译,汇编器a…
我们今天来讲调试信息,这个东西讲起来会比较无聊,因为都是一些函数调用,没啥可讲的,函数就是那样用的,不过其效果挺好玩的,同时在程序设计中也是很必要的,所以还是来写一下,不过,就是因为知识比较固定且简单,所以我们 一篇就覆盖三节的内容吧: 1. 获取当前活动的顶点属性和对应索引 2.获取当前活动的uniform量和对应索引 2.Debug Getting Ready 我们以上一节的旋转三角形的例子来讲这一篇. 当我们的shader program编译连接完成之后,所有的量都已经分配了自己的索引,这…