gcc/g++ -g -Wall -o sort sort.c
ddd --separate file
gdb file -tui
gdb file core
Ctrl+P
Ctrl+N
Ctrl+X+A
help
run
run
run arguments
# run 12 5 7
break
break line_number
# break 43
break function_name
# break main
break filename:line_number
# break src/ins.c:12
break filename:function_name
# break src/ins.c:sort
break +offset
# break +12
break -offset
# break -12
break *address
# break *0x1234
break break_args if condition_expression
# break if i == 999 <==> continue N
# break 31 if x==1 <==> break 31 ---> condition 1 x==1
# break sort if x > 1 <==> break sort ---> condition 1 x > 1
# break 55 if (x & y) == 1 && p != NULL && (i + j) % k < 2
# break 57 if strlen(str) > 3 && myfun(str) && !error(n)
# break 88 thread 3 if x==y
clear
clear line_number
# clear 43
clear function_name
# clear main
clear filename:line_number
# clear src/ins.c:12
clear filename:function_name
# clear src/ins.c:sort
clear filename
# clear main
tbreak
hbreak
rbreak
continue
continue breakpoint_count
# continue 3
condition
condition breakpoint_index condition_expression
# condition 1 x==1 # set condition
# condition 1 # empty condition, but keep breakpoint
info breakpoints
next
next times
# next 3
step
step times
# step 3
delete
delete
delete breakpoint_index/watch_index/breakpoint_list
# delete 5
list
list filename
# list main
list function_name
# list insert
list filename:function_name
# list cstring.c:main
quit
disable
disable breakpoint_list
# disable 1 2 3
enable
enable breakpoint_list
# enable 1 2 3
enable once breakpoint_list
# enable once 1 2 3
finish
until
until
until line_number
# until 17
until function_name
# until swap
until filename:line_number
# until main:17
until filename:function_name
# until main:swap
print
print varriable
# print n
print /format varriable
# print /x n
# print /c n
# print /s n
# print /f n
printf
printf format, args
# printf "%d\n", n
display
display varriable
# display *p
# disable display 1
# enable display 1
# undisplay 1
ptype
ptype varriable
---------
print cos(0.0) # $1 = 14368
print (double)cos(0.0) # $1 = 14368
-----
set $p = (double (*) (double))cos
ptype $p # type = double (*) ()
print cos(3.14159265) # $2 = 14368
print $p(3.14159265) # $3 = -1
---------
commands
commands breakpoint_number
...commands...
end
# commands 1
# silent
# printf "fib was passed %d.\n", n
# continue
# end
# define print_and_go
# printf $arg0, $arg1
# continue
# end
# commands 1
# silent
# print_and_go "fib was passed %d." n
# end
# commands 2
# silent
# printf "string has a length of %d\n", strlen(string)
# end
# commands 3
# print *tmp
# if 0 != tmp->left
# print tmp->left->val
# else
# print "none"
# end
# if 0 != tmp->right
# print tmp->right->val
# else
# print "none"
# end
# end
# commands 3 # cancel conmmands 3
# end
show user
watch
watch variable/expression
# watch x # when x changes pause
# watch x > 5 # when (x>5) changes pause
# watch (i | j > 12) && i > 24 && strlen(name) > 6
info locals
# to show dynamic-array
# int * p = (int *)malloc(sizeof(int) * 8));
*pointer@number_of_elements
# print *p@8
(type [number_of_elements])*pointer
# (int [8])*p
set
set variable = n
# set argc = 3
set variable_array variable_list
# set args 1 2 3 4 # change argv[1-5]
# (char * [5])*argv
# *argv@5
set $variable = n
# set $i = 0
# print w[$i++]
ulimit
ulimit -c n # n KB
ulimit -c unlimited
limit
limit coredumpsize n # n Byte, for tcsh, csh
backtrace
frame frame_number
# frame 1
strace file args
info threads
thread thread_index
# thread 3
bt
--------------------------------------------
# ps ax
# gdb server 1254 # gdb file process_id
# bt
# frame 1 # frame frame_id
--------------------------------------------
handle SIGSEGV nostop noprint
-------------------------------------------------------------------
# cd z
# gcc -g -c b.c
# ar rc lib88.a b.o
# cd ..
# gcc -g -o a.out a.c -l88 -Lz # gcc -g -o a.out a.c z/lib88.a
-------------------------------------------------------------------
# cd z
# gcc -fPIC -c b.c
# gcc -shared -o lib99.so b.o
# cd ..
# gcc -g -o a.out a.c -l99 -Lz # gcc -g -o a.out a.c z/lib99.so
-------------------------------------------------------------------
gdb commands
最新推荐文章于 2024-05-17 12:49:01 发布