Linux下程序崩溃,ulimit,coredump,gdbserver

简介: 操作系统:Ubuntu10.04前言:    在程序崩溃后,如何快速定位问题。    以下方法适用于开发调试阶段,不太适用成品。    本文着眼于嵌入式,PC方面更简单。    核心:gdbserver + coredump一,安装,配置,使用 gdbserver    arm linux下安装gd...

操作系统:Ubuntu10.04

前言:
    在程序崩溃后,如何快速定位问题。
    以下方法适用于开发调试阶段,不太适用成品。
    本文着眼于嵌入式,PC方面更简单。
    核心:gdbserver + coredump

一,安装,配置,使用 gdbserver
    arm linux下安装gdb,gdbserver调试器


二,启动 coredump
    linux下ulimit命令下的coredump 

三,实例
    1,源码

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. static    void    fun(char* a,char *b)
  5. {
  6.     strcpy(a,"hello world");
  7.     strcpy(b,"wo shi zhong guo ren");
  8.     printf("%s,%s\n",a,b);
  9. }
  10. int main(int argc,char *argv[])
  11. {
  12.     char temp[5] = {0};
  13.     char temp2[5] = {0};
  14.     fun(temp,temp2);
  15.     
  16.     return 0;
  17. }


    2,结果
    
    

    3,通过gdbserver来查看异常所在
        a,设备,启动gdbserver
        

        b,pc机,调试设备中的程序
        

        c,pc机上的gdb中输入where,定位异常
        

 

from:http://blog.chinaunix.net/uid-28458801-id-4349219.html

目录
相关文章
|
7月前
|
Linux Shell
在Linux中,umask 和 ulimit有什么区别?
在Linux中,umask 和 ulimit有什么区别?
|
6月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
286 6
|
7月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
812 2
|
7月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
121 2
|
5月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
225 1
|
6月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
77 5
|
7月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
293 3
|
7月前
|
安全 Linux Shell
linux查看/修改各种资源限制ulimit
在Linux资源管理中,适当的使用 `ulimit`,结合系统配置文件的修改,可以更好地控制和优化系统资源,提高系统的稳定性和效率。对于系统管理员而言,精通这些知识是十分必要的,可以有效地防止因资源滥用导致的各种问题。
393 5
|
7月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
7月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。