如果程序使用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
我有Qt应用程序,这是显示一个WebView (基于webkit)。我正在尝试使用gdb来调试它。当我通过gdb运行应用程序时,它几乎立即崩溃。该应用程序在gdb之外运行时不会出现问题。 崩溃的原因是: Thread 1 "myapp" received signal SIGILL, Illegal instruction.
0x4a4d9a88 in ?? () from /usr/lib/libcrypto.so.1.0.2 由于错误是SIGILL,是否有可能是gdb从错误的路径加载lib? 这个应用程序非常简单,只是在特定的URL上显示一个WebView: ui
我意外地为远程计算机(运行linux的集群)上的一个巨大文件夹启动了一个删除进程,我通过命令"Connect to server“导航文件夹/通过Nautilus访问文件。在这台机器上我没有垃圾。我已经停止了删除进程后,1或2秒(红色按钮在窗口与进度栏),显然所有的文件仍然在那里。如何检查文件是否已损坏/部分删除?