openjdk-7 Ошибка списка GDB: "main.c: нет такого файла или каталога"
В настоящее время я борюсь с отладкой openjdk в Trusty Tahr. Я уже установил opejdk-7-jdk
а также openjdk-7-dbg
, Когда я выпускаю gdb java
Я вижу, что он правильно читает символы, но когда я прошу перечислить код, он жалуется на то, что main.c не найден. Мне удается заставить отладку работать в CentOS, и я могу перечислить файл main.c, но я хочу, чтобы он работал на Ubuntu, поскольку это мой основной дистрибутив.
Необработанная продукция:
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from java...Reading symbols from /usr/lib/debug//usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java...done.
done.
(gdb) l
85 ../../../../src/share/bin/main.c: No such file or directory.
(gdb)
Нужно ли делать что-то дополнительное, чтобы разместить main.c там, где его можно найти?
1 ответ
Вы должны изменить source path
используется GDB, чтобы узнать исходный файл.
Согласно руководству GDB:
Исполняемые программы иногда не записывают каталоги исходных файлов, из которых они были скомпилированы, а только имена. Даже когда они это делают, каталоги можно перемещать между компиляцией и сеансом отладки. GDB имеет список каталогов для поиска исходных файлов; это называется исходным путем.
Сначала вам нужно выяснить, где находится исходный файл в вашей системе:
locate main.c
и чем пользоваться dir dirname
команда для:
Добавьте каталог dirname в начало исходного пути. Этой команде может быть дано несколько имен каталогов, разделенных символом ":" (";" в MS-DOS и MS-Windows, где ":" обычно отображается как часть абсолютных имен файлов) или пробелами. Вы можете указать каталог, который уже находится в исходном пути; это продвигает его вперед, поэтому GDB ищет его раньше.
Прочитайте внимательно ссылку на руководство GDB выше, чтобы узнать, как это source path
используется.