LINUX.ORG.RU

Правила substitute-path не выполняются

 


1

1

Есть у gdb такая опция substitute-path (http://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html) и она отказывается у меня работать.

Покажу на примере:

$ cd /some/path
$ mkdir -p gdb/sub
$ cd gdb
$ vim sub/main.cpp # тут делаю тупой while(true);
$ g++ -g sub/main.cpp
$ ./a.out &
$ cd ..
$ mkdir gdb_
$ mv gdb/* gdb_
$ sudo gdb -p <pid>
...
main () at sub/main.cpp:14
14	sub/main.cpp: Нет такого файла или каталога.
(gdb) set substitute-path sub /some/path/gdb_/sub
(gdb) f
#0  main () at sub/main.cpp:14
14	in sub/main.cpp    # то есть не подхватил
(gdb) directory /some/path/gdb_
(gdb) f
#0  main () at sub/main.cpp:14
14	  while (true);    # то есть подхватил

Вот и проблема, что substitute-path не работает, а directory - пожалуйста. Надеюсь понятно объяснил, кто-нибудь еще это использует?



Последнее исправление: tri10bit (всего исправлений: 1)

'/some/path/gdb_' отличается же от '/home/yk/Develop/prb/gdb_', да?

вообще в твоём случае substitute-path совсем не нужен. Он полезен, если вбиты асболютные пути в отладочных данных.

И ещё, нужно же заменять на /some/path/gdb_/sub

mashina ★★★★★
()
Последнее исправление: mashina (всего исправлений: 2)
Ответ на: комментарий от mashina

не отличается, исправил)

и ты не знаешь моего реального случая, у меня там cygwin, зоопарк с регистром букв и реальными/относительными путями =)

tri10bit
() автор топика
Ответ на: комментарий от mashina

Сейчас сделал абсолютные пути и substitution /some/path/gdb на /some/path/gdb_ заработал! Видимо это сделано специально и очень жаль, как мне теперь быть с путями вида D:/some/path или ../../.. , omg =(

tri10bit
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.