Как и другие говорили, что out_file - это не список, а объект (указатель файла), который имеет методы для доступа к содержимому вашего файла, например
out_file.read()
, если вы хотите прочитать содержимое файла как список Вы можете сделать
top_scores = out_file.read().split('\n')
и продолжить добавление к нему с помощью out_file.write()
Я предполагаю, что компилятор и компоновщик творит чудеса с этими конкретными функциями. Скорее всего, это повысит производительность.
Если вам абсолютно необходимо ] pow ()
, чтобы быть доступным в gdb, тогда вы можете создать свою собственную функцию-оболочку:
double mypow(double a, double b)
{
return pow(a,b);
}
Может быть, также оберните ее в #ifdef DEBUG
или что-то еще, чтобы не загромождать конечный двоичный файл.
Кстати, вы заметите, что можно вызывать другие библиотечные функции (и выводить их возвращаемое значение), например:
(gdb) print printf("hello world")
$4 = 11
Вы должны указать GDB, что он найдет возвращаемое значение в регистрах с плавающей запятой, а не в обычных, кроме того, чтобы дать параметрам правильные типы.
То есть:
(gdb) p ((double (*) ()) pow) (2., 2.)
$ 1 = 4
Синтаксис вызова функции в GDB:
call pow(3,2)
Тип
help call
в приглашении GDB для получения дополнительной информации.
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. )