Difference between revisions of "LU-LSP-b11:L11"
(New page: LSP11: ''gdb'' lietošana ''valgrind'' lietošana) |
|||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| ⚫ | |||
LSP11: |
|||
Kods: |
|||
| ⚫ | |||
#include <stdio.h> |
|||
| ⚫ | |||
#include <memory.h> |
|||
#include <stdlib.h> |
|||
#include <unistd.h> |
|||
char string[] = "hello world 1234567890"; |
|||
int crash(int *pi) |
|||
{ |
|||
*pi = 0x1; |
|||
} |
|||
int f(void) |
|||
{ |
|||
crash(NULL); |
|||
} |
|||
int main() |
|||
{ |
|||
f(); |
|||
printf("%s\n", string); |
|||
return 0; |
|||
} |
|||
Makefile: |
|||
all: |
|||
gcc -g a.c -o pd11 |
|||
Lietošana: |
|||
gdb ./pd11 |
|||
run |
|||
continue |
|||
break <address> |
|||
print <variable> |
|||
set <variable> |
|||
next |
|||
step |
|||
| ⚫ | |||
valgrind --leak-check=full ./pd11 |
|||
valgrind --tool=callgrind ./pd11 |
|||
Tiks izveidots šāds fails: ''callgrind.out.<pid>'', kur <pid> ir programmas ID. |
|||
Pēc tam to var skatīties ar: |
|||
kcachegrind callgrind.out.6413 |
|||
Latest revision as of 17:12, 22 November 2011
gdb lietošana
Kods:
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <unistd.h>
char string[] = "hello world 1234567890";
int crash(int *pi)
{
*pi = 0x1;
}
int f(void)
{
crash(NULL);
}
int main()
{
f();
printf("%s\n", string);
return 0;
}
Makefile:
all: gcc -g a.c -o pd11
Lietošana:
gdb ./pd11 run continue break <address> print <variable> set <variable> next step
valgrind lietošana
valgrind --leak-check=full ./pd11
valgrind --tool=callgrind ./pd11
Tiks izveidots šāds fails: callgrind.out.<pid>, kur <pid> ir programmas ID. Pēc tam to var skatīties ar:
kcachegrind callgrind.out.6413