#include <iostream>int testString(){ char szBuff[1024]; memset(szBuff, 0, sizeof(szBuff)); snprintf(szBuff, sizeof(szBuff), "%s", "abcdefg01\023\0456\r78\n9"); int * parr = new int[20]; for (int i = 0; i < 20; i++) { parr[i] = i; parr[i] = i + 1; parr[i] = i + 2; } printf("%d\n", parr[1]); printf("%d\n", parr[2]); return 0;}int main(){ testString(); return 0;}
2 -- 流程式控制制類命令
退出迴圈命令:"u"或者"until 行號"
Breakpoint 1, testString () at togdb.cpp:1212 for (int i = 0; i < 20; i++)(gdb) n14 parr[i] = i;(gdb) u15 parr[i] = i + 1;(gdb) 16 parr[i] = i + 2;(gdb) 12 for (int i = 0; i < 20; i++)(gdb) 20 return 0;(gdb)
在迴圈體內使用"u"命令,執行完該迴圈體內的語句後,跳轉到for語句出,繼續按“斷行符號”鍵不再進入迴圈體,跳過執行到for迴圈後的語句。
或者使用"until 20",直接跳轉到for迴圈外的語句開始執行。
3 -- 查看記憶體命令和方法
使用examine命令(x)來查看記憶體位址中的值。命令格式如:
x/nfu <addr>
參數n |
表示要顯示的記憶體單元的個數 |
參數f |
表示顯示方式, 可取如下值: x 按十六進位格式顯示變數,(hex); a 按十六進位格式顯示變數,(address); d 按十進位格式顯示變數,(decimal); u 按十進位格式顯示無符號整型,(unsigned decimal); o 按八進位格式顯示變數,(octal); t 按二進位格式顯示變數,(binary); i 指令地址格式,(instruction); c 按字元格式設定顯示變數,c(char); f 按浮點數格式顯示變數,(float) |
參數u |
表示一個元素單元的長度,可取如下值: b 表示單位元組,(byte); h 表示雙位元組,(halfword); w 表示四位元組,(word); g 表示八位元組,(giant, 8 bytes) |
比如查看,szBuff緩衝區頭100個位元組,使用命令:
x/100cb szBuff 表示從szBuff開始讀取100個元素,每個元素1個位元組,以字元形式顯示;
x/100xb szBuff 表示從szBuff開始讀取100個元素,每個元素1個位元組,以十六進位顯示;
x/100xh szBuff 表示從szBuff開始讀取100個元素,每個元素2個位元組,以十六進位顯示,實際讀取200個位元組;