������ ���, ����� ���� ��������� �������� ������� (������ �������� �����, ��� ������ �� ����� ���������� ���������), �� ������ ��� ������� �������� GDB (Gnu debugger). �� ��������� �������� ������� ��� ���������� ���������, �������� �� �������� � ������������ �������� ����������.
��� ������������� GDB ���������� ��������������� ��������� � ������
-g
, ��������, c++ -g program.cpp
. ����� ����� ����������
��������� gdb
, ������� ��� � �������� ��������� ��� �������������
������������ �����: gdb a.out
.
����� ����������� (gdb)
����� ������� ��������� �������. ������ ������� �����
��������� �� �����-���� ����. ����� ������������ ������� <Tab> ��� ���������� �����
�������, ���������� ��� ������� ��������� ����. ������� ������� ������� <Enter>
��� �������� ������� ��������� ��������� ����� ��������� �������. ��� ���������� ������
GDB ������� ������� quit
(����������� �� q
).
��� ��������� ������� ��������� ������ ������� help
(h
), ��� ��������� ������� �� ��������
���� ��� ����� ������� ���������� ���� ������� help
� ��������� ����� �������, ��������,
help breakpoints
��� ��������� ������� �� ��������, ��������� � ������� ���������. �������
help
��� ���������� ������� ������ ���� �������� �������.
run
(r
) �������� ���������� ��������� �� ������ ����� ��������� ��� ������������� ������
����� Floating point exception
��� Segmentation fault
. ��� ��������������� �����-������
������� ����� ������������ ������� run <input_file >output_file
.
continue
(c
) ���������� ���������� ��������� �� ��������� ����� ��������� ��� ������.
step
(s
) ���������� ���������� ��������� ���� ���������� �� ��������� ��������� ������
��������� ������. ��� ���� ���������� ���� � �������, �� ���� ��� ������ ������ ������� ��������� ����� ���������������.
next
(n
) �������� ���������� ������� step
, �� ��� ���� ������� ���������� ��� ���������.
finish
���������� ���������� ��������� �� �������� �� ������� �������, ���������� ������������ ��������.
�������� step
� next
����� �������� �������� ��������, � ���� ������ ��� ����� �������� ����������
���� ������� �������� ����� ���.
print expr
(p
) ���������� �������� ��������� expr
.
����������� ������������� ����������� ������ ��������� ����� C/C++, � ��� ����� � ������ �������.
��������: p a
, p sqrt(n)
, p (a&b)>>3
.
���� ������� ������������ ������ (��������, int * p=new int[10]
), �� ��� ������ ��� �� ����� (print p
) �����
���������� �������� ���������, �� ���� ����� � ������ ����������. ���� ������� ������� ���� ������ (��� ��� �����), �� ����������
��������������� ���������� �������� ������������ ������� @
, ����� ������� �������� - ������ ������� �������������� �������,
� ������ - ����� ��������� �������. ��������, print *p@10
��� print p[0]@10
.
���� ���������� ����������� �������� ������-���� ���������, �� ��� ����� �������� � ������ ��������������� �����������, � ����� ��� ����� ���������� ������ ��� ��� ��������� ���������.
display expr
�������� ��������� expr
� ������ ��������������� �����������. ������ ����� ��������� �������� ���� �����.
delete display n
������� ��������� � ������� n
�� ������ ��������������� �����������.
disable display n
��������� ���������� �������� � ������� n
�� ������, �� ������ ���.
enable display n
�������� ����������� �������� n
�� ������, ������������ �����.
display
���������� �������� ���� ������������� ������������ ���������, ��� ��� ���������� ��� ��������� ���������.
info display
������� ������ ������������� ������������ ���������.
���� � ���������� ������������ ��������� ����������, �� ��� ��������� �� ���������� ��� ���� ������������ ���������, � ������� ��� ���������������. � ���� ������ ��������������� ����������� ����� ���������.
� ������������ ����� ��������� ����� ��������� ����� ��������, ��� ���������� ������� ������� �����������.
��� ���� ����� ����������� �������� ����������, ���������� ���������� ��������� ��� ������ ������ c
, s
, n
��� ��������� ������ ������� GDB.
break n
(b
) ���������� ����� �������� �� ������ ��������� ���� � ������� n
.
��� ����� �������� ����� ���� ������, ������������ ��� �� ���������.
break function
���������� ����� �������� �� ������� function
. ���������� ��������� �����������
��� ������ ���� �������. ���������������� ������: break main
��� ����, ����� ����� ���� �������� ���������
��������� � ������ ������.
tbreak ...
��������� ������� ����� ��������. �������� ���������� break
, �� ����� �������� �������������
��������� ��� ���������� ��.
break ... if cond
��������� �������� ����� ��������. ���������� ��������������� �� ������ ������ ��� �������, ����
��������� ������� cond
. ������: break 120 if a==15
.
clear function
��� clear n
������� ����� �������� �� ������� function
��� � ������ � ������� n
.
delete ��������
(d
) ������� ����� �������� � �������� �� ���������� ���������. ��������,
delete 1-5
��� delete 4
. ���� �������� �� �����, ��������� ��� ����� ��������.
disable ��������
��������� ����� �� ��������� ���������.
enable ��������
�������� ����� �� ��������� ���������.
enable once ��������
����� �� ��������� ��������� ���������� �� ������� ������������, ����� ���� �����������.
enable delete ��������
����� �� ��������� ��������� ���������� �� ������� ������������, ����� ���� ���������.
condition n cond
����������� ����� �������� � ������� n
� �������� � �������� cond
.
condition n
����������� ����� �������� � ������� n
� �����������.
info break
������� ���������� ��� ���� ��������� ������ ��������.
����� ����, ����� ������������� ����� ������, ������� ����� ��������� ��� ���������� ����� ��������, ��������, ����� ����������� ��� �������� �������� ����������. �� ���� �������������� �� �������� 41 ������� ������������ �� GDB.
���� ���������, � ����� ����� ��������� ��������� ������, �� �������� � ������� ������� ����� ����������. ����� ���������� ��������� ���������� ��������� � ����� �����, ����� ���������� �������� ��������.
watch expr
���������� ����� ���������� �� ��������� expr
. ���������� ��������� ���������������,
����� �������� expr
����������� ���������� � ��� �������� ����������. ������: watch a
.
rwatch expr
���������� ����� ����������, ������� ��������� ��������, ����� ��������� expr
����������� ����������.
awatch expr
���������� ����� ����������, ������� ��������� ���������, ���� ��������� expr
����������� ��� �����������.
info watch
������� ���������� � ���� ������ ����������.
��� ������ ��������� ������ ��������� ������������ ������� list
(l
) � ��������� ���������:
list n
������� ������ ��������� ����, ������ ������ � ������� n
.
list function
������� ������ ���� ������� function
.
list n,m
������� ������ � �������� �� n
�� m
.
list n,
������� ������, ������� � n
.
list ,m
������� ������ �� ������ m
.
list
������� ��� ������� �����. �� ��������� ��������� 10 ��������� �����, ����� ����� ����������.
��� �������� ����� �������� �������� set listsize �����
.
����� ��������� ���������� ���� ������, ������ ����� ���������� ������, ��� ��� ��������� � ��� ��� ���� ������.
�������� ��� ������� ��� ������� run-time
������.
������ ���, ����� ���������� �������, ���������� � ������ ����������� � �����. ���������� ����������� � ����� ������, ���������� ������ �����.
where
������� ���������� �����.
frame n
������������� � ���� � ������� n
. ��� ���� ����� ������������� �������� ���������
���������� � ��������� ����� �����.
up n
������������� �� ����� ����� �� n
������. �� ��������� n
����� 1.
down n
������������� �� ����� ���� �� n
������.
info frame
������� ���������� � ������� �����.
info args
������� ���������� �� ���������� �������� �����.
info locals
������� ���������� � ���� ��������� ���������� �������� �����.