Как оценить функции в GDB?

Как и другие говорили, что out_file - это не список, а объект (указатель файла), который имеет методы для доступа к содержимому вашего файла, например

out_file.read()

, если вы хотите прочитать содержимое файла как список Вы можете сделать

top_scores = out_file.read().split('\n')

и продолжить добавление к нему с помощью out_file.write()

29
задан Ciro Santilli 新疆改造中心法轮功六四事件 29 March 2017 в 08:36
поделиться

4 ответа

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

Если вам абсолютно необходимо ] pow () , чтобы быть доступным в gdb, тогда вы можете создать свою собственную функцию-оболочку:

double mypow(double a, double b)
{
    return pow(a,b);
}

Может быть, также оберните ее в #ifdef DEBUG или что-то еще, чтобы не загромождать конечный двоичный файл.

Кстати, вы заметите, что можно вызывать другие библиотечные функции (и выводить их возвращаемое значение), например:

(gdb) print printf("hello world")
$4 = 11
19
ответ дан 28 November 2019 в 01:17
поделиться

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

То есть:

(gdb) p ((double (*) ()) pow) (2., 2.)

$ 1 = 4

21
ответ дан anon 28 November 2019 в 01:17
поделиться

Синтаксис вызова функции в GDB:

call pow(3,2)

Тип

help call

в приглашении GDB для получения дополнительной информации.

18
ответ дан Charles E. Grant 28 November 2019 в 01:17
поделиться
NAME
   pow, powf, powl - power functions

SYNOPSIS
   #include <math.h>

   double pow(double x, double y);

Вы не должны передавать int вместо двойного

 call pow( 3. , 2. )

Кроме того, передачи одного аргумента недостаточно, вам нужно два аргумента, как ожидает функция

 wrong: call pow ( 3. )
0
ответ дан Adrian Panasiuk 28 November 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: