Вы должны увеличить память драйвера. Думаю, в вашей папке $ SPARK_HOME / conf вы должны найти файл spark-defaults.conf
, отредактировать и установить spark.driver.memory 4000m
в зависимости от памяти вашего хозяина. Это то, что исправило проблему для меня, и все работает гладко
Я думал, что gbd все еще может выполнять инструкции
blockquote>Может, но команда для этого -
stepi
, а неstep
, которую вы используете.Шаг за шагом строк , что требует наличия отладочной информации в источниках.
Немного об оптимизации
blockquote>Например, это код C:
int main(int argc, char** argv) { printf("Hello World\n"); return 0; }
Когда вы сборка с -O0, оптимизация кода выполняется очень редко, а код выполняется очень медленно. Это неоптимизированный код (gcc -m32):
; Variables: ; arg_4: 12 ; arg_0: 8 ; var_4: -4 ; var_8: -8 ; var_C: -12 ; var_10: -16 ; var_18: -24 push ebp mov ebp, esp sub esp, 0x18 call _main+11 pop eax ; CODE XREF=_main+6 -- These lines are gone after optimization -- mov ecx, dword [ebp+arg_4] mov edx, dword [ebp+arg_0] -- -- lea eax, dword [eax-0x1f5b+0x1fa6] ; "Hello World!\\n" -- There lines are gone after optimization -- mov dword [ebp+var_4], 0x0 mov dword [ebp+var_8], edx mov dword [ebp+var_C], ecx mov dword [esp+0x18+var_18], eax ; method imp___symbol_stub__printf call imp___symbol_stub__printf xor ecx, ecx mov dword [ebp+var_10], eax mov eax, ecx add esp, 0x18 pop ebp ret
При сборке с -03 вы заметите, что строк меньше. Оптимизированный код (gcc -m32 -O3):
push ebp mov ebp, esp sub esp, 0x8 call _main+11 pop eax ; CODE XREF=_main+6 lea eax, dword [eax-0x1f6b+0x1f9e] ; "Hello World!" mov dword [esp+0x8+var_8], eax ; "%s" for imp___symbol_stub__puts call imp___symbol_stub__puts xor eax, eax add esp, 0x8 pop eep ret
Причина, по которой неоптимизированный код имеет ненужные строки, заключается в том, что main принимает два аргумента и сохраняет их в регистры независимо от того, используете ли вы или не без оптимизации, но при оптимизации компилятор удаляет эти инструкции mov, потому что аргументы не используются и не нужны. Аналогично, значения регистров также сохраняются в переменных стека, поскольку аргументы копируются в переменные стека.
BLOCKQUOTE>