установка точек трассировки, но не удалось найти данные трассировки, поскольку tfind показывает «Target не удалось найти запрошенный кадр трассировки». - PullRequest
1 голос
/ 17 февраля 2012

я написал очень маленькую прогу ниже, чтобы добавить два целых числа только для проверки использования точек трассировки.

1 #include<stdio.h>
2 main(){
3         int x,y,sum;
4         x = 3;
5         y = 4;
6         sum = x + y;
7         printf("sum = %d\n",sum);
8 }       

на одном терминале я запустил gdbserver как:

$ gdbserver :10000 ./chk
Process ./chk created; 
pid = 13956
Listening on port 10000
Remote debugging from host 127.0.0.1

На другом терминале я запустил GDB как:

$ gdb -ex 'target remote :10000' ./chk

и затем следующие шаги, как показано ниже:

(gdb) trace chk.c:6
Tracepoint 1 at 0x80483fd: file chk.c, line 6.

(gdb) passcount 1 1
Setting tracepoint 1's passcount to 1

(gdb) actions 1
Enter actions for tracepoint 1, one per line.
End with a line saying just "end".

>collect $regs
>end
(gdb) tstart
(gdb) tstatus
Trace is running on the target.
Collected 0 trace frames.
Trace buffer has 5242880 bytes of 5242880 bytes free (0% full).
Trace will stop if GDB disconnects.
Not looking at any trace frame.

(gdb) tstop
(gdb) tfind
Target failed to find requested trace frame.

(gdb) tdump
warning: No current trace frame.

Может кто-нибудь, пожалуйста, дайте мне знать, почему tstatus, tfind и tdump дают мне такой вывод? В чем здесь проблема? Как я могу проверить значение моего следа (который я дал здесь как $ regs)?

1 Ответ

1 голос
/ 17 февраля 2012

почему tstatus, tfind и tdump дают мне такой вывод

Когда вы присоединяете GDB, подчиненный (отлаженный) процесс останавливается в _start (т.е. не достигmain пока).

После запуска эксперимента по трассировке с tstart вам необходимо продолжить выполнение подчиненного, чтобы он достиг вашей точки трассировки и автоматически остановил трассировку(с помощью команды continue GDB).

Вместо этого вы немедленно прекращаете эксперимент (с помощью tstop), что приводит к пустой трассировке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...