GDB调试命令大全

gdb --pid 1235

gdb core.1234

where (bt)    //where the segmentation fault occurred

f 1              //切换栈帧

info locals  //打印内存

WinDBG调试技巧 .     ybao@microsoft.com baoyunduan

.ecxr command displays the context record

kb    display call stack with first 3 params

.hh --help

.sympath+ srv*c:\symsrv*http://msdl.microsoft.com/download/symbols

.sympath+ C:\training\Labfiles
.srcpath C:\training\Labfiles\ErrorCheck\FileCopy

srv*c:\symsrv*http://msdl.microsoft.com/download/symbols;C:\training\Labfiles
./realod /f
lm -----check the symbol file

Noninvasive -----only view, can't modify memory data

.detach

command line: c:/windbg /?
dash y == -y
slash ? == /?

process -p PID
service -pn name/global

k --- call stack
kn ---- show frame number
kf ---- show memory ocupy

~*k
~4k ---- show thread 4
~ --- show all thread
~S5 --- jump to thread 5
.frame 2 -- jump to frame

? --- convert hex to Decimal
.formats -- show all formats of a number

g --- continure run debugger
r --- list all the registers
rm ff

r@eax --- specific a registers

syspath
ft
tasklist svc

.hh ---help
.hh reload

.reload --- reload symboal
.reload /f

!chain

!ext analyze

c:/debuggers/winext
.load usbkd
unload usbkd

.kframes

logfile
logopen d:\log.txt
logclose
logappend d:\log.txt

d ---- display memory
dd* point ---- display data in the address store in the point
dv ----display local variable
dt ----display type
dt ps
dt ps -r1

e ---- edit data in memory

!grep

n 10
.formats -118

x---- list the function name/global variable
x notepad!*
x notepad!*file

------------------------mex debugging extension for windebug

c:/debugers/winext
!mex.help
.load mex
.unload mexextpath

!us

bl ----list break point
bp ----set break point
bm ----set multiple point
bm notepad!*file
bd ----disable break point
bc ----clear specific break point

|
||
vertarget ----Shows target computer version

? Evaluate expression
?? Evaluate an expression according to c++ expression rules

.dump
/f complete dump
/ma mini dump

.reload
/f
/u

lm ---- list all dlls, can be used to check if the symbol file was loaded
lmvm combase

.effmach x86 | amd64

t
p
pc
g
gu
gu; echo "hello"; gu; gu

u ---- show assembly code
u L30
uf ----The uf command displays an assembly translation of the specified function in memory

----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------

eventvwr

!analyze -v

!dh badapp

dps +image base address + offset address

!error errorcode
!error 3

!gle
----GetLastError() in code

!teb

.unload ext ---- Load Extension DLL
.load ext

BOOL SafeDiv(INT32 dividend, INT32 divisor, INT32 *pResult)
{
__try
{
*pResult = dividend / divisor;
}
__except(GetExceptionCode() == EXCEPTION_INT_DIVIDE_BY_ZERO ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
return FALSE;
}
return TRUE;
}

sx ---set exception

prodump.exe -----create dump file when some rules was trigger
-ma --very important
-i
-e
-c
-cl
-h
-n

---- show dump info
!peb -- !peb extension displays a formatted view of the information in the process environment block (PEB).

!teb -- !teb extension displays a formatted view of the information in the thread environment block (TEB).

!runway ---- show run time of thread
!runway f

stack:

1M
two pages

c++函数调用方法
32 bit 4种不同的调用方法
64bit 只有一种调用方法

STDCALL 从右往左压栈,适用于有固定参数个数,由调用函数来处理
CDECL
THISCALL
FASTCALL

----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
E:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
dumpbin
editbin /LARGEADORESSAWARE[:NO] 可在不重新编译的情况下,将用户可用内存空间大于2G

或者在VS--链接--系统--启用大地址中修改选项,然后重新编译

You can use /userva with /3Gb to further tune user VA space

!address -summary

Performance Monitor -- 1. 打开:Administrative Tools->Performance,或在运行中输入"perfmon"

C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
1. Windows Performance recorder
WPRUI.exe

2. Windows Performance Analyzer
wpa.exe

C:\Program Files (x86)\Windows Resource Kits\Tools\consume 可以用来模拟系统资源占用比较严重的情况,我被弄死机了,差点笔记也没有了
consume -cpu-time

!address summary
!address analyze
!heap -s
!heap /?
!help -stat -h HANDLE
!heap -p -a ADDR

gflags -i heap_overrun_demo.exe +hpa

--------------------------------------------------------------------------------------------------------------------
check deadlock ----step
!locks, !cs, ~*k

children process -- command line

Semaphore -- multiple owner
CS/Mute -- One owner

WaitForMultipleObject() ---- 等多个条件齐了才能开始

!handle f

TLS 线程本地存储 ----- http://blog.csdn.net/xiaoliangsky/article/details/43158713

用ProcDump 来取dump是比较准确的

.reload /i C:\Users\admin\Downloads\wme4train_x64\mediaengine\maps\x64\Release
.reload /i wseclient.dll
.effmach x86
.load wow64exts
!analyze -v

!wow64exts k

Debug tool 学习笔记的更多相关文章

  1. ansible debug模块学习笔记

    - name: Print debug infomation eg hosts: test2 gather_facts: F tasks: - name: Command run line shell ...

  2. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  3. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14——Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

  4. 学习笔记之Coding / Design / Tool

    CODING 学习笔记之代码大全2 - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5301123.html 学习笔记之编程珠玑 Programm ...

  5. Xcode 8 的 Debug 新特性 —- WWDC 2016 Session 410 & 412 学习笔记

    Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View De ...

  6. DirectX 总结和DirectX 9.0 学习笔记

    转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac ...

  7. DBus学习笔记

    摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...

  8. Oracle RAC学习笔记02-RAC维护工具集

    Oracle RAC学习笔记02-RAC维护工具集 RAC维护工具集 1.节点层 2.网络层 3.集群层 4.应用层 本文实验环境: 10.2.0.5 Clusterware + RAC 11.2.0 ...

  9. Hibernate 马士兵 学习笔记 (转)

    目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...

随机推荐

  1. asp.net core mvc视频A:笔记2-2.接收数据

    传参方式一:使用内置方法传递 运行结果 其他获取方法 Session对象在HttpContext中 启用Session 使用Session 运行演示 传参方式二:数据绑定 普通类型(string).自 ...

  2. elk systemd管理

    1.logstash /etc/systemd/system/logstash.service Type=simple User=logstash Group=logstash # Load env ...

  3. 利用$(window).resize()实现窗口大小自适应宽度问题

    © 版权声明:本文为博主原创文章,转载请注明出处 问题描述:利用iframe做页面引入,用$(window).resize()作自适应:结果窗口变小时,利用$(window).width()获取到的宽 ...

  4. Atitit.struts排除url 的设计and 原理 自定义filter 排除特定url

    Atitit.struts排除url 的设计and 原理 自定义filter 排除特定url 1.1. 原理流程1 2. Invoke1 3. StrutsX2 1.1. 原理流程 读取struts配 ...

  5. Arcgis:什么是栅格数据类型

    栅格数据单元大小 栅格所表示的内容的详细程度(要素现象)通常取决于栅格的单元(像素)大小或空间分辨率. 单元必须足够小,这样才可以捕获到所需的详细信息: 而单元又必须足够大,这样才可以提高计算机存储和 ...

  6. html+JS刷图实现视频效果

    网页播放视频须要载入播放器,可是通过刷图也能实现视频播放的效果 JS中用到Z-index属性,记录一篇解说Z-index属性的博客的地址: http://www.cnblogs.com/gisdrea ...

  7. inside when() you don't call method on mock but on some other object

    错误原因:调用静态方法,要事先引入静态类,否则mock的时候会默认为测试的类 解决方法:@PrepareForTest({SecurityContextHolder.class})引入静态类 注:@P ...

  8. websocket通讯协议(10版本)简介

    前言: 工作中用到了websocket 协议10版本的,英文的协议请看这里: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotoc ...

  9. Hdu 5288 OO’s Sequence 2015多小联赛A题

    OO's Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  10. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前期准备 git的简单使用

    因为项目的代码须要上传到git上.就须要学习一下git的使用了. 我初步接触了一下git,准备用此帖来记录git的学习,此帖会随着我对git了解的深入动态更新. 一.GIT的介绍 1.概述:git是一 ...