1.斷點
條件斷點語法:
常用語法:
0:000> bp
address
"j (
condition
) 'optionalcommands
'; 'gc' "
或
0:000> bp
address
".if (
condition
) .else "
兩者是等效的。
條件斷點示例:
bp mymodule!myfun "$$對mymodule模組中myfun函式下斷點, 當函式執行到第0x0000023f次時,中斷下來。
r $t0=@$t0+1;$$用偽暫存器$t0記錄函式執行的次數
.printf \"====func excutions %d times.\\n\", @$t0;
.echo;
.if (@$t0 & 0x0`ffffffff) = 0x0`0000023f
.else
"
設定斷點的命令有:bp,bu,bm。bm設定符號斷點,可以通過模式匹配一次性設定多個斷點。bu可以為乙個未載入的符號設定斷點,當後面符號載入時會自動解析。pb為指定位址設定位址,當位址表示式無法解析時會自動轉為bu斷點。
如,
0:000>bm myprogram!mem*
4: 0040d070 myprogram!memcpy
5: 0040c560 myprogram!memmove
6: 00408960 myprogram!memset
全部斷點語法:
使用者模式斷點語法:
[~thread]bp[
id] [
options] [
address [
passes]] ["commandstring"]
[~thread]bu[
id] [
options] [
address [
passes]] ["commandstring"]
[~thread]bm[
options]
symbolpattern [
passes] ["commandstring"]
核心模式斷點語法:
bp[
id] [
options] [
address [
passes]] ["commandstring"]
bu[
id] [
options] [
address [
passes]] ["commandstring"]
bm[options] symbolpattern [passes] ["commandstring"]
2. 指令碼檔案的輸入
基本的語法有:
$$>$$< filename
$$>< filename ------>例如:
0:000>$$><
c:\windbgscript.txt
$$>a< filename [arg1 arg2 arg3 ...] [; command] ----->可為指令碼提供引數, 指令碼中以$形式使用引數
只有乙個$的,filename前不能留空格;$$的,filename前面可有空格;含》的表示檔案中的命令被看成乙個命令塊,載入檔案後會被執行。
.echo 1=$
.echo 3=$
.echo 4=$
recx
執行結果:
0:002> $$>a ----------->因為只提供了三個引數,所以自動引數變數$arg4沒有被解析
ecx=00000000
edx=77c7f17d 3.
待續。。。
windbg的命令備忘錄
現在經常要使用windbg除錯程式,只有把windbg的命令都用熟了,才能提高除錯的效率。windbg的命令實在是太多,因此,要記住需要一定時間,只有反覆學習和練習這些命令,才能把他們爛熟於心。主要是記錄一下自己經常要用到的windbg命令,並且不斷更新。反彙編位址為0x011f1400的後8行彙編...
Vim 命令 備忘錄
vim 中的內部命令與 vi 編輯器中的內部命令類似。表 1 提供了 vim 中的游標移動命令。表 1.用於移動游標的 vim 命令 命令動作 h將游標向左移動 j 加號 enter 或 return 將游標向下移動 k 減號 將游標向上移動 l將游標向右移動 將游標移動到當前段落的末尾 將游標移動...
github命令備忘錄
因為公司所有的 全部放在linux系統伺服器下,並且用git分布式管理,所以工作中難免會用到許多命令,很多較少用記錄下來以備用 git的用法 1 git brach 檢視分支情況 2 git checkout master 切換到master 3 git pull 更新 從git伺服器更新 4 gi...