- 23 Eyl 2016
- 7,205
- 13
Arch
Kod:
sudo pacman -S gdb
Debian
Kod:
sudo apt-get install gdb
Fedora
Kod:
sudo yum install gdb
Windows
Kod:
https://www.gnu.org/software/gdb/download/
İlk önce bazı komutlardan bahsedelim.
break İstediğiniz lineyı breakpoint etmenizi sağlar. Function veya variable.
run Debugda yaptığınız değişikler ile çalıştırmanızı sağlar.
step veya next Sonraki source linea gider.
print İstediğiniz variableyi ekrana bastırır.
continue Çalıştırmaya devam eder.
Bunları kısaltmak için baş harflerini yazabilirsiniz.
Şimdi gelelim artık debug yapmaya.
C dili ile örnek bi' program hazırlıyalım. İsmi main olsun.
Kod:
#include <stdio.h>
#include <string.h>
int main(vo*id)
{
char pass[] = "temp";
scanf("%s",pass);
if(strcmp("AAAA-0123",pass)==0) {
printf("Access Granted !");
}
else {
printf("Try Again.");
}
return 0;
}
Bunu şu şekilde compile ediyoruz.
Kod:
gcc -g main.c
gdb a.out
break main diyerek main functionunu
break ediyoruz. Bunu break main.c:5 diyerek de yapabiliriz. Gördüğümüz gibi böyle bi' çıktı verdi.
Kod:
Breakpoint 1, main () at main.c:5
5 {
Sürekli next dersek bir sonraki linea gider.
Kod:
Breakpoint 1, main () at main.c:5
5 {
(gdb) next
6 char pass[] = "temponevariable";
(gdb) next
7 scanf("%s",pass);
(gdb) next
sda
9 if(strcmp("AAAA-0123",pass)==0) {
(gdb) next
13 printf("Try Again.");
(gdb) next
16 return 0;
Ayrıca next dediğimizde o komut gerçekleşmiş olur. scanf linenına geldiğimizde bizden input istedi. Eğer variableleri ve argc/argv'leri değiştirmek istiyorsak şöyle yapabiliriz.
Kod:
set variable pass = "hello"
Kod:
set args 10 20
Eğer bastırmak istiyorsak print pass ile bastırırız.
Son düzenleme: