Я пытаюсь установить точку останова с условием. Допустим, условие
условие 1 temp() > 0,0
но есть функции
интервал времени()
и
плавающая температура()
в том же пакете. Затем gdb спрашивает, какая функция предназначена (несколько совпадений). не только один раз, когда условие определено, но каждый раз, когда условие оценивается. Можно ли однозначно определить функцию, например, указав файл и строку?
Я попытался добавить тип возврата так, как он был указан в альтернативном произведенном gdb, подобно «temp return int», но это привело к ошибке.
Но я пытаюсь вызвать функцию и использовать возвращаемое значение в условии
Какой язык? По крайней мере, в C++ вы можете заставить GDB вызывать функцию, используя ее искаженное имя.
Ада, так немного сложно гуглить. Я посмотрю на это, спасибо!
Проблема решена благодаря комментарию Марка Плотника: используйте искаженное имя. В gdb вы можете получить искаженное имя (я) функции в строке 123 в файле.adb, выполнив команду:
info line file.adb:123
Команду Linux objdump также можно использовать для поиска искаженного имени, например:
objdump -t file.o
Конечно, вы можете создать точку останова с информацией о файле и строке, просто попробуйте
break file:line
.