語法 :
list, l | List specified function or line
list LineNumber <顯示特定行數>
list File:LineNum <顯示特定檔案的特定行數>
list Function <顯示特定函數代碼>
list File:Function <顯示特定檔案內某函數>
list *Address <顯示記憶體位置>
使用範例 :
考慮代碼 :
- list1.c :
- #include
- #include "list2.h"
-
- int min(int a, int b);
-
- int main(void) {
- int maxValue = max(10, 14);
- int minValue = min(10, 14);
- return 0;
- }
-
- int min(int a, int b) {
- if(a<=b) return a;
- else return b;
- }
- list2.c :
- #include "list2.h"
-
- int max(int a, int b) {
- if(a>=b) return a;
- else return b;
- }
使用下列命令 compile 程式並接著用gdb 開啟 :
linux-tl0r:~/gdbDemo #
gcc -g list1.c list2.h list2.c -o list_demo
linux-tl0r:~/gdbDemo #
gdb list_demo
(gdb) list 3 <列出 list1.c 第 3 行附近代碼>
1 #include
2 #include "list2.h"
3
4 int min(int a, int b);
5
6 int main(void) {
7 int maxValue = max(10, 14);
8 int minValue = min(10, 14);
9 return 0;
10 }
(gdb) list list2.c:3 <列出 list2.c 第3行附近代碼>
1 #include "list2.h"
2
3 int max(int a, int b) {
4 if(a>=b) return a;
5 else return b;
6 }
(gdb) list min <列出函數 min() 附近代碼>
7 int maxValue = max(10, 14);
8 int minValue = min(10, 14);
9 return 0;
10 }
11
12 int min(int a, int b) {
13 if(a<=b) return a;
14 else return b;
15 }
(gdb) list list2.c:max <列出 list2.c 中的 max() 函數附近代碼>
1 #include "list2.h"
2
3 int max(int a, int b) {
4 if(a>=b) return a;
5 else return b;
6 }
(gdb) print main <列印 main() 函數記憶體位置>
$1 = {int (void)} 0x80483e4
(gdb) list *0x80483e4 <列印記憶體 0x80483e4 附近代碼>
0x80483e4 is in main (list1.c:6).
1 #include
2 #include "list2.h"
3
4 int min(int a, int b);
5
6 int main(void) {
7 int maxValue = max(10, 14);
8 int minValue = min(10, 14);
9 return 0;
10 }
This message was edited 3 times. Last update was at 01/11/2010 17:41:13
沒有留言:
張貼留言