Temat linii mówi wszystko.W GDB można podać adres względny (w liniach) od początku funkcji?
Jeśli podaję lokalizację na podstawie pliku i numeru linii, ta wartość może się zmienić, jeśli edytuję plik. W rzeczywistości zmienia się dość często iw niewygodny sposób, jeśli edytuję więcej niż jedną funkcję podczas refaktoryzacji. Jest jednak mniej prawdopodobne, że zmieni się, jeśli jest (linia) względem początku funkcji.
Jeśli nie można podać przesunięcia linii od początku funkcji, czy możliwe jest użycie emulatora wygodnych zmiennych? To znaczy. czy zadeklarowałbym zmienne wygody, które są mapowane na początek danej funkcji (lista, którą chciałbym aktualizować)?
Według help break
żaden z nich nie jest dostępny, ale pomyślałem, że powinienem zapytać o to.
(gdb) help break
Set breakpoint at specified line or function.
break [PROBE_MODIFIER] [LOCATION] [thread THREADNUM] [if CONDITION]
PROBE_MODIFIER shall be present if the command is to be placed in a
probe point. Accepted values are `-probe' (for a generic, automatically
guessed probe type) or `-probe-stap' (for a SystemTap probe).
LOCATION may be a line number, function name, or "*" and an address.
If a line number is specified, break at start of code for that line.
If a function is specified, break at start of code for that function.
If an address is specified, break at that exact address.
With no LOCATION, uses current execution address of the selected
stack frame. This is useful for breaking on return to a stack frame.
THREADNUM is the number from "info threads".
CONDITION is a boolean expression.
Multiple breakpoints at one place are permitted, and useful if their
conditions are different.
Do "help breakpoints" for info on other commands dealing with breakpoints.
Oprócz punktów sondowania, użyłem także składni "break function: label", aby uzyskać taki sam efekt w przeszłości. która również może być opcją. – matt
@TomTromey: SystemTap jest również zależny od systemu Linux, prawda? Podczas gdy ELF, GCC i GDB nie są. – 0xC0000022L
Tak, SystemTap jest zależny od systemu Linux. Możliwe jest jednak użycie sdt.h sond w innych systemach. Nie próbowałem, ale nie rozumiem, dlaczego nie. Cała strona sondy to tylko jeden plik nagłówkowy ... –