远程 GDB 

首先 ,Target 为 ARM开发板 (IP =  192.168.1.200),HOST 为 Ubuntu 14.04 虚拟机 (IP = 192.168.1.4)

  1. 下载  gdb源码  http://ftp.gnu.org/gnu/gdb/

  2. 解压后利用交叉编译工具链 ,对 gdb 源码交叉编译。i   ./configure --host=aarch64-poky-linux --prefix=/home/install   ii make     iii  make install

  3.拷贝 /home/install 下编译产物到 开发板的根文件目录/usr/ 下 ,我的是 /exports/rfs/usr/

  4. 交叉编译 应用程序  hello.c   $CC -g -o hello  hello.c   拷贝hello 到 /export/rfs/下

  5. 给开发板上电 ,进入控制台,执行  , 其中  192.168.1.4:1234 为 Host IP 地址  : port 口

root@mint:/# gdbserver 192.168.1.4: ./hello
Process ./hello created; pid =
Listening on port

  6. 在 HOST 平台上执行  $GDB /exports/rfs/hello  进入:

0x0000ffffb7fd2d00 in ?? () from target:/lib/ld-linux-aarch64.so.
(gdb)

  输入 (gdb) target remote 192.168.1.200:1234  (192.168.1.200:1234 为TARGET IP 地址 和相同的port口)

  7. 在 main 入口处打断点   (gdb)break main

  8. 开始 debug (gdb)continue

至此完成 远程 调试 开发板 。

 

segment fault 定位

  运行应用程序的时候,遇到最多的问题就属  segment fault 了,下面介绍如何利用 core 文件 定位 segment fault 。

  1. 设置 core dump 的路径在 /tmp 目录下 文件名为  core+ 程序名   : echo "/tmp/core-%e-%p" > /proc/sys/kernel/core_pattern

  2. 设置  core 文件的大小限制  ulimit -c unlimited

  3. 运行 出错的应用程序  ./ xxxxx

  4. 报出segment fault 后就可以在  /tmp/下查看到   core-xxxxx-xxx 文件

  5. 把core 文件拷贝出来放在 根目录下 /

  6. 在 PC 上 利用  $GDB  /exports/rfs/xxxxx  core-xxxxx-xxx 就可以 显示出错代码的位置了。

$(GDB) 为 (交叉编译 gdb)

segment fault 定位 与 远程 gdb的更多相关文章

  1. 【Z】段错误Segment Fault定位,即core dump文件与gdb定位

    使用C++开发系统有时会出现段错误,即Segment Fault.此类错误程序直接崩溃,通常没有任何有用信息输出,很难定位bug,因而无从解决问题.今天我们介绍core dump文件,并使用gdb进行 ...

  2. GDB调试之core文件(如何定位到Segment fault)

    core dump又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中,叫core dump.(内部实现是:linux系统中内存越界会收到SI ...

  3. segment fault异常及常见定位手段

    问题背景 最近boot中遇到个用户态程序的segment fault异常,除了一句"Segment fault"打印外无其他任何打印.该问题复现概率较低,定位起来比较棘手.我们的b ...

  4. Segment fault及LINUX core dump详解 (zz)

    C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界. (2)修改了只读内存. (3)scanf("%d&q ...

  5. Segment fault及LINUX core dump详解

    源自:http://andyniu.iteye.com/blog/1965571 core dump的概念: A core dump is the recorded state of the work ...

  6. Linux下如何生成core dump 文件(解决segment fault段错误的问题)

    Linux下的C程序常常会因为内存访问等原因造成segment fault(段错误),如果此时core dump 的功能是打开的,在运行我们的可执行程序时就会生成一个名为core的文件,然后我们就可以 ...

  7. 利用linux信号机制调试段错误(Segment fault)

    在实际开发过程中,大家可能会遇到段错误的问题,虽然是个老问题,但是其带来的隐患是极大的,只要出现一次,程序立即崩溃中止.如果程序运行在PC中,segment fault的调试相对比较方便,因为可以通过 ...

  8. gdbserver移植到DM368板子上的过程 以及segment fault problem

    问题描述 我在PC机上安装了gdbserver,但是移植到板子上后却出现了问题.运行不了,显示错误:"segment fault". 决定重新在另一台虚拟机上gdbserver. ...

  9. 利用linux信号机制调试段错误(Segment fault)【转】

    转自:http://blog.csdn.net/ab198604/article/details/6164517 版权声明:本文为博主原创文章,未经博主允许不得转载. 在实际开发过程中,大家可能会遇到 ...

随机推荐

  1. go语言从例子开始之Example3.变量

    在 Go 中,变量 被显式声明,并被编译器所用来检查函数调用时的类型正确性 package main import "fmt" func main() { var 声明 1 个或者 ...

  2. Java高级应用(一)

    下面来介绍一下Java的高级应用有哪些. Java高级应用 第一讲 类加载 (一).类加载 类加载器是一个特殊的类,负责在运行时寻找和加载类文件.Java允许使用不同的类加载器,甚至是自定义类加载器. ...

  3. #2560异或和问题 jdfz集训—秦岳

    题目描述 N个数字,要求选择M次,每次从N个数中选出两个数(Ai,Aj)(但不能和之前某次选择相同),此次选择的得分为Ai xor Aj. 求最大得分. 输入格式 第一行包含两个整数N,M 接下来一行 ...

  4. elasticsearch 6.x 安装search guard

    前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用到安 ...

  5. PHP浮点精度问题

    使用php+ - * /计算浮点数的时候,可能会遇到一些计算结果错误的问题,如下: <?php echo intval(0.58 * 100); //输出57 解决办法 <?php ech ...

  6. [REPRINT]MySQL Indexing Explained

    https://atech.blog/viaduct/mysql-indexes-primer What are Indexes? Every time your web application ru ...

  7. Kali 和 Centos、Windows三系统的安装事项!

    过年了,想在硬盘上直接装Kali Linux,就不用每次插U盘进LiveCD了,但是安装过程真的是!!What fucking word I can say!! 先是分区问题,ntfs有四个分区,其中 ...

  8. 编译安装Python3.4, pip安装, pypi是pip的源,修改为国内的pypi源

    Linux 下编译安装 Python 3.4 更新于 2014-09-24 02:01:05 UEANER 系统环境: CentOS 6.5 x86_64 / Fedora 20 x86_64 安装相 ...

  9. 基于turtle库的七段数码管绘制

    ·文章结构 >样例及概览 >函数框架分析 >功能发展·样例及概览 七段数码管,是信号灯.电子表等很多设备的显示形式.而利用python的turtle库,我们也可以模拟着写出一个动态生 ...

  10. Java中编写一个完美的equals方法

    首先看下Java语言规范对equals方法的要求: 1,自反性,对于任何非控引用x,x.equals(x)都应该返回true. 2,对称性,对于任何引用x和y,如果x.equals(y)返回true, ...