
linux程序调试工具
文章平均质量分 90
lbaihao
zephyr,data structure, algorithm, protocol,darknet,architecture
展开
-
cgroup实践-资源控制
1、Cgroup安装安装Cgroups需要libcap-devel和libcgroup两个相关的包2、Cgroup挂载配置3、常用的Cgroup相关命令和配置文件4、libcgroup Man Page简介。原创 2024-01-25 12:33:50 · 1256 阅读 · 0 评论 -
valgrind 的使用简介
一 valgrind是什么?Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构转载 2016-12-23 17:33:20 · 448 阅读 · 0 评论 -
Unix下C程序内存泄漏检测工具Valgrind安装与使用
algrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。Valgrind遵守GNU通用公共许可证条款,是一款自由软件。 官网http://www.valgrind.org转载 2016-12-23 17:23:27 · 752 阅读 · 0 评论 -
内核性能调试–ftrace
调试难度本来就是写代码的两倍.因此,如果你写代码的时候聪明用尽,根据定义,你就没有能耐去调试它了.” – Brian Kernighan某手机公司的研发总监谈到内核调试时问我怎么android手机上解决有时整机响应慢甚至无响应的情况。 我说可以首先使能内核的调试选项检查是否存在内核死锁,再通过内核的kprobe/ftrace检查中断和系统调用情况,blabla… 没想到该总说“我们公司原创 2016-12-22 23:36:14 · 1102 阅读 · 0 评论 -
Linux 下 strace 命令用法总结
Linux 下 strace 命令用法总结1 功能说明strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. strace 从内核接收信息, 而且无需以任何特别的方式来构建内核. strace 的每一行输出包括系统调用名称, 然后是参数和返回值.下面记录几个常用option:-f -F选项告诉strac转载 2016-12-07 18:27:08 · 386 阅读 · 0 评论 -
strace用法说明
strace命令详解strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。 strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。 下面记录几个常用 option . 1 -f -F选项告诉strace同时跟踪fork和vfork出来的进程 2 -o xxx.txt 输出到某个文转载 2016-12-07 18:23:42 · 328 阅读 · 0 评论 -
Linux /Android ARM 64 bit/32 bit 编程移植
32bit user @ 64 bit kernell Usecompat_ioctl( ) but not onlyunlock_ioctl() in kernel driverlcompat_ioctl( ) :支持64bit的driver必须要实现的ioctl,当有32bit的userspace application call 64bit kernel的IOCT原创 2016-11-17 23:52:30 · 3849 阅读 · 0 评论 -
linux GDB调试程序(一)
一.gdb常用命令:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行原创 2016-06-13 23:15:37 · 598 阅读 · 0 评论 -
linux camera GS5604调试
#include #include #include /* * This module shows how to create a simple subdirectory in sysfs called * /sys/kernel/kobject-example In that directory, 3 files are created: * "foo", "b原创 2016-10-27 22:22:20 · 1366 阅读 · 0 评论 -
Linux之问题诊断工具strace
引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..." 对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open fi转载 2016-08-23 13:50:50 · 742 阅读 · 0 评论 -
Linux多进程和多线程的一次gdb调试实例
Linux C/C++开发中gdb进行多进程和多线程的调试一直比较麻烦,在优快云上看到高科的一篇文章《gdb调试多进程和多线程命令》比较有启发,这里就自己重新整理并做了一个GDB多进程/线程的调试实践。1 原文整理默认设置下,在调试多进程程序时gdb只会调试主进程。gdb7以上的版本(gdb --version)支持多进程调试,只需要设置好follow-fork-mode(for转载 2016-08-23 12:26:00 · 2031 阅读 · 0 评论 -
ptrace运行原理及使用详解
你想过怎么实现对系统调用的拦截吗?你尝试过通过改变系统调用的参数来愚弄你的系统kernel吗?你想过调试器是如何使运行中的进程暂停并且控制它吗?你可能会开始考虑怎么使用复杂的kernel编程来达到目的,那么,你错了。实际上Linux提供了一种优雅的机制来完成这些:ptrace系统函数。 ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而转载 2016-08-22 13:35:30 · 687 阅读 · 0 评论 -
gdb 调试core
简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它 指向的 gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gd转载 2016-08-28 22:39:34 · 619 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定转载 2016-08-28 21:45:05 · 722 阅读 · 0 评论 -
android 编译环境搭建
Linux主机(推荐使用ubuntu12.04 64bit),硬盘空间至少100G(可满足一次完全编译),一般来说Linux主机中需要:-Python的2.7.3版本;-GNUMake的3.81-3.82版本;-JDK6;-git的1.7或更高版本; 可选,在ubuntu安装虚拟机运行xp,或者单独的Windows XP主机,作为固件烧写机器和本地调试环境,通常需要原创 2016-07-06 23:00:30 · 552 阅读 · 0 评论 -
gdb调试多进程和多线程命令
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent原创 2016-07-27 13:53:34 · 1972 阅读 · 0 评论 -
GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
目录(?)[+]1、ncurse库的移植 (1)下载:ncurses-5.6.tar.gz (2)解压和cd ncurses-5.6 (3)配置生成 makefile ./configure --host=arm-linux --prefix=$PWD/output/arm --without-ada --enable-termc转载 2016-06-28 12:48:34 · 2806 阅读 · 0 评论