прикрепить к другой программе после отсоединения - PullRequest
0 голосов
/ 24 апреля 2018

Я использовал gud-gdb в emacs.Сначала я прикрепил к PID программы1 29514

(gdb) attach 29514
Attaching to program: program1
...

Затем отсоединил его.

(gdb) detach
Detaching from program: program1, process 29514

Затем я захотел запустить другую программу2 с pid 4917.

(gdb) attach 4917
Attaching to program: program1, process 4917
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
0x00007fbfc52604c0 in ?? ()

Мы видели, что GDB все еще хочет использовать программу1.Есть ли способ разрешить gdb очистить последнюю отключенную программу?

1 Ответ

0 голосов
/ 25 апреля 2018

Я воспроизвел это поведение, используя текущую магистральную GDB.

Я считаю, что это ошибка: документация говорит:

"When you use attach, the debugger finds the program running in the process
first by looking in the current working directory, then (if the program
is not found) ..."

Он не различаетпервое и второе присоединение, и это не говорит о том, что GDB не найдет программу снова, если новый процесс запускает программу, отличную от старой.

Вы можете обойти это с помощью команды file:

(gdb) attach $PID1
...
(gdb) detach

(gdb) file prog2    # you shouldn't have to do this
(gdb) attach $PID2  # works fine
...