我正在尝试使用gdb调试Linux,我用"compile kernel with debug info“编译了内核。一旦内核编译完成,我正在尝试提供GDB文件vmlinux (运行上面的命令会出现下面的错误)
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Reading symbols from file...(no debugging symbols found)...done.
"/home/Linux/vmlinux" is not a core dump: File format not recognized
我正在尝试调试一些pyspark代码,但是当调试器碰到创建SparkSession的行时,它就会失败。
SparkSession.builder.master("local").appName("test").getOrCreate()
异常由JavaArray类__compute_index方法(在java_collections.py中定义)引发:
raise IndexError("list index out of range")
但是,手动运行测试(没有调试器)按预期工作(即测试成功运行)。此外,令人惊讶的是,可以通过在调用getOrC
如果程序使用ptrace来检测它是否在调试器中运行,我发现了下面的技巧:
catch syscall ptrace
commands 1
set ($eax) = 0
continue
end
有人能解释一下它是怎么工作的吗?我试图在i r eax之后插入commands 1,但是我不理解我得到的负值:
Catchpoint 1 (call to syscall ptrace), 0x00007ffff778af1e in ptrace (request=PTRACE_TRACEME) at ../sysdeps/unix/sysv/linux/ptrace.c:45
45 ../sysde