Red Hat Developer Toolset
delivers the latest stable versions of essential GCC C, C++, Fortran, and supporting development
tools to enhance developer productivity and improve deployment times.

About GCC version, recommend to use the latest version,
wihle adding new features to compiler, it may introduce some ABI changes and new defects(especially c++11)
if we use a third-party lib complied with gcc of a different version, sometimes it may cause link failure(backwards compatibility).
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html (part 3)
https://gcc.gnu.org/wiki/Cxx11AbiCompatibility
https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

linux so information:
readelf vs objdump : recommend to use readelf
https://stackoverflow.com/questions/8979664/readelf-vs-objdump-why-are-both-needed

direct dependency: readelf -d
recursive ones : ldd

elf sections: .comment debug symtab text
gcc version : readelf -p .comment elf-file

check whether elf is compiled with '-g' (debugging)
1) use gdb
2) readelf -S elf //to see if there are .debug_x sections
- readelf --debug-dump=decodeline elf // to show section:.debug_line

3)if Elf are built with '-gsplit-dwarf', it would generate *.dwo to contain debug info
find its path in .debug_str


Windbg 概念

Local cache     MS Symbol Store     Symbol (search) Path

.symfix (path) : 把 Store 覆盖 Symbol Path (不需要记忆官方地址)

.symfix+ path : 把Store 添加到已有Symbol Path

.sympath (path) : 显示(覆盖)当前Symbol Path

Source: src path 只要相对路径不被破坏,只需指定一处(源文件的根目录),windbg会自动关联。

-        需要的src path通常是包含在pdb文件中,只有在加载pdb后可知,比如打印堆

load executable/ dump file / attach to process

lm 查看模块及是否加载symbol

!lmi module-name 查看模块的symbol 位置

~ 显示thread数  ~ NO. S  切换thread

K显示堆   .frame NO.  前往指定堆

查找符号断点

-        根据k 显示的符号

-        X [<*|module>!]<*|symbol> - view symbols

Bp  function-name  & bc 删除

打开源文件, 如果没设置对路径,无反应

.open  -a function-name

调试

g – run  p – step over t – step in

查看变量

dv varialble

i sh 查看加载的动态模块

Info threads 查看线程 thread NO. 切换线程

bt 堆      frame NO 前往指定堆

查看符号断点

-        Info functions 查看有的符号

-        b functon-name  / delete NO. 删除断点

-        info b 查看breakpoints

Info sources 查看引用source 路径   Show directories 来查看source search path

使用set directories / substitute-path 来设置目录

List -  当前行

list function / NO.

Debug

r – run   n – step over  s  - step into   c - continue

Variables

p variable  set variable = new-v

提供了 查看map, list 命令

Info args  / where  / condition  / (force) return

debug 2的更多相关文章

  1. jmeter sampler maven项目排错记

    eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...

  2. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  3. .NET Core的日志[3]:将日志写入Debug窗口

    定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志 ...

  4. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

  5. Android NDK debug 方法

    最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...

  6. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...

  7. struts debug 标签

    < s:debug> 引起下面的错误 org.apache.jasper.JasperException: Caught an exception while getting the pr ...

  8. How to debug .NET Core RC2 app with Visual Studio Code on Windows?

    Simone Chiaretta (http://codeclimber.net.nz/archive/2016/05/20/How-to-debug-NET-Core-RC2-app-with-Vi ...

  9. Debug Databinding Issues in WPF

    DataBinding is one of the most powerful features in WPF. But because it resolves the bindings at run ...

  10. Debug JDK变量显形

    本文面向的朋友 本文主要说明在使用Eclipse Debug JDK时,看不到变量值的解决办法. 如果您看到上面绿色字体表示不敢兴趣,请一定果断back,如果您不爽,请在下面使劲的拍. Debug J ...

随机推荐

  1. Django后端向前端直接传html语言防止转义的方法(2种)

    Django后端向前端直接传html语言防止转义的方法(2种) 目的,为了让前端对后端传输的这种方式不转义 1.使用mark_safe() from django.utils.safestring i ...

  2. B树和B+树详解

    一 B树 1.B树的定义:B树(B-tree)是一种树状数据结构,它能够存储数据.对其进行排序并允许以O(log n)的时间复杂度运行进行查找.顺序读取.插入和删除的数据结构.B树,概括来说是一个节点 ...

  3. 【zabbix教程系列】五、邮件报警设置(脚本方式)

    本方式是使用外部邮箱账号发送报警邮件到指定邮箱. 好处是:此邮箱账号既能发送邮件,也能接收邮件,而且避免被当做垃圾邮件. 一.zabbix-server端安装mailx服务 [root@ltt01 ~ ...

  4. k-均值聚类算法1

    一.k-means算法: 1.优缺点: 优点:容易实现. 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢. 2.伪代码描述:

  5. Java基础 -- 深入理解Java类型信息(Class对象)与反射机制

    一 RTTI概念 认识Claa对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一直是 C++ 中的概念,至于Java中出现RT ...

  6. jacoco+maven 初次使用覆盖率工具

    工作要搞覆盖率测试,看到公司平台上用的jacoco,就找了网上的demo自己跑了一下. 一.覆盖率测试是干什么的 http://www.open-open.com/lib/view/open14721 ...

  7. SaltStack 介绍和安装

    SaltStack 介绍和安装 SaltStack 介绍 SaltStack是一种利用Python语言开发的,用于批量管理主机的一套工具,主要实现三种功能: 远程执行:通过saltstack工具,可以 ...

  8. JavaEESpringMVC基础整理

    1.什么是 SpringMVC ? 在介绍什么是 SpringMVC 之前,我们先看看 Spring 的基本架构.如下图: 我们可以看到,在 Spring 的基本架构中,红色圈起来的 Spring W ...

  9. 关于4A系统(我对4A系统的维护的理解)

    4A系统 4A系统是统一安全管理平台解决方案,指认证Authentication.账号Account.授权Authorization.审计Audit,中文名称为统一安全管理平台解决方案.即将身份认证. ...

  10. [Leetcode] 01 Matrix

    问题: https://leetcode.com/problems/01-matrix/#/description 基本思路:广度优先遍历,根据所有最短距离为N的格找到所有距离为N+1的格,直到所有的 ...