想起东软的1个linux老师,就讲了两天基本就把这书讲完了,
刚买了本书,一定要一星期内看完
《debug hacks》
源码在http://www.oreilly.co.jp/books/9784873114040/
日语,google翻译吧
奶奶的幸好哥我练过,要不被你成那啥呀~
先 ulimit -c 内核转储文件的大小限制
ulimit -c 1073741842
或开机启动
vim /etc/profile
ulimit -S -c unlimited > /dev/null 2>&1
再故意写个错代码
这个意思似乎是0是系统的,不能访问
test.c
#include <stdio.h>
int main(){
int *a=NULL;
*a=0*1;
return 0;
}
gcc -p -g test.c
./a.out
生成core*
gdb -c core.1234 ./a.out
l 6
Quit
------------------
在固定位置/var/core/生成内核转储
cat /etc/sysctl.conf
kernel.core_pattern=/var/core/%t-%e-%p-%c.core
kernel.core_uses_pid=0
sysctl -p
cat /proc/sys/kernel/core_pattern
参考http://wenku.baidu.com/view/6518f4d376eeaeaad1f330e0.html
http://dsec.pku.edu.cn/~yuhj/wiki/gdb.html
#include <stdio.h>
int globi=0;
int func(int n)
{
globi=1;
int sum=0,i;
for(i=0; i<n; i++)
{
sum+=i;
}
return sum;
}
main()
{
int i;
long result = 0;
for(i=1; i<=100; i++)
{
result += i;
}
printf("result[1-100] = %d \n", result );
printf("result[1-250] = %d \n", func(250) );
}
cc -g tst.c -o tst
gdb tst
b 16 ------break 16行
info b -------info break
r --------run
n --------next
c --------continue
p i ----打印变量i
p sum
bt --------查看函数堆栈。
set variable i=99
c
q -----Quit
shell ls -------运行shell命令
make----
show args
set args
pwd
cd
info terminal
tty /dev/ttyb
watch globi ---------好像得是全局变量才能用
r
gdb <program> PID
调试运行的程序两种方法:
1、在UNIX下用ps查看正在运行的程序的PID(进程ID),然后用gdb <program> PID格式挂接正在运行的程序。
2、先用gdb <program>关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID。并用detach来取消挂接的进程
info program ------是否在运行
在gdb中,我们可以有以下几种暂停方式:断点(BreakPoint)、观
察点(Watch Point)、捕捉点(Catch Point)、信号(Signals)、
线程停止(Thread Stops)。如果要恢复程序运行,可以使用c或是
continue命令
分享到:
相关推荐
02.Hello world的回忆 03.秘密一:main函数的原型 (1-3) 04.秘密二:main函数的返回值 (1-3) 05.秘密三:被隐藏的细节 (1-4) 06.秘密四:printf不见了(1-4) 07.秘密五:链接了哪些共享库 (1-3) 08.秘密六:调用共享...
hello world的帧栈分析,其中的帧栈图的电脑配置:OS: debian 6.0.2 ,X86_32 位机器、用gdb调试成功画出的。
1. (gdb) source deps/v8/tools/gdbinit , 2. 设置断点到CompileString函数之后, 3. 使用 jlh来查看l
gdb> python print "Hello World" 并获得可预期的结果。 如果抛出错误-那么您的GDB版本中没有编译python。 需要使用FreeRTOS 8.0+。 该代码可能与FreeRTOS 7.0或更早版本一起使用,但是当前代码不支持它。 您需要...
C-Plus-Hello-World-Debian 使用VSCode和Debian的C ++ Hello World 在命令提示符下,通过键入以下命令安装GNU编译器工具和GDB调试器: sudo apt-get install build-essential gdb gitgit config --global user.name ...
是不是只有编译的时候才知道程序写了...int main(void){ print(“hello world\n”, s); return}—————————————————–casio$ splint -strict foo.c Splint 3.1.1 — 03 Nov 2006 foo.c: (in functio
RPi Pico你好世界假设您不在Raspian系统上使用正式的安装脚本,则需要从某个地方获取CMake,ARM GCC和Doxygen。 在拱门上pacman -S cmake arm-...) 这应该生成hello_world.uf2 Pico呈现为USB磁盘; 刷新它仅涉及将UF
2.2.6 运行helloworld 17 2.3 Gnome应用程序 17 2.4 GNU C 编译器 18 2.4.1 使用 gcc 18 2.4.2 gcc 选项 18 2.5 初始化库 19 2.6 用popt分析参数 20 2.6.1 参数分析方法 20 2.6.2 GnomeHello程序的参数分析 22 2.7 ...
2.2.6 运行helloworld 17 2.3 Gnome应用程序 17 2.4 GNU C 编译器 18 2.4.1 使用 gcc 18 2.4.2 gcc 选项 18 2.5 初始化库 19 2.6 用popt分析参数 20 2.6.1 参数分析方法 20 2.6.2 GnomeHello程序的参数分析 22 2.7 ...
1、通过WINDOWS操作系统中的远程登录程序telnet.exe 登录UNIX。...4、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc编译并观察编译后的结果。 5、利用gdb调试该程序。 6、运行生成的可执行文件。
:C语言,编译和Hello World简介 :变量,条件和循环简介 :函数和嵌套循环简介 : 简介(gdb,objdump,x86汇编简介) :更多高级功能和嵌套循环 :指针,数组和字符串操作简介 :指针,数组和字符串操作 ...
9.9.1 Hello World插件 191 9.9.2 find memcpy插件 194 9.10 间接调用插件 209 9.10.1 收集数据 210 9.10.2 用户接口 211 9.10.3 实现回调 213 9.10.4 显示结果 215 9.11 插件开发和调试策略 250 9.11.1 ...
知识点3: 实例场景(Hello World,猜数字,文件读写,网络侦测) 实战项目: LInux服务器自动监控 第五讲 Linux开发基础 知识点1: 用C语言写一个hello word程序 知识点2: GCC与GDB 简介 知识点3: 工程文件...
world。 感谢为此做出贡献的每个人,请务必查看 CONTRIBUTING.md 以获取贡献说明! - 移至:请参阅自述文件。 x86 IA-32 和 x86-64 userland 最小示例教程。 数百个可运行的断言。 不错的 GDB 设置。 IO 使用 libc ...
实现了hello_world内核模块,在x86和arm32上运行 实现了一个字符设备驱动,在arm32上运行 20200701 实现了字符设备驱动客户端 实现了misc设备 20200708 实现了虚拟设备的FIFO读写 20200925 自己动手写docker ...
1. 继续Hello World 2. 常量 3. 变量 4. 赋值 5. 表达式 6. 字符类型与字符编码 3. 简单函数 1. 数学函数 2. 自定义函数 3. 形参和实参 4. 全局变量、局部变量和作用域 4. 分支语句 1. if语句 2. if/else语句 3. ...
《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux...12.3 实验内容——使用Qt编写“Hello,World”程序 12.4 本章小结
CMSIS_LM3S 你好呀!!! ##这是什么? 这是一个使用CMSIS DSP_Lib , NEWLIB和arm-none-eabi-gcc工具链的LM3S Cortex-M3系列启动项目。 ##为什么使用LM3S系列?... cd ./examples/uart_hello_world/gcc qemu-syst
4.2 我试着编译我写的一个Hello World小程序,不幸的是我失败了. 为什么呢? 4.3 如何使用编译工具make? 4.4 我在我的Makefile里面使用了后引用元素,为什么我的make失败了? 4.5 我想使用一些配置工具, 我该怎么...