linux禁止gdb调试

linux禁止gdb调试,第1张

禁止在 Linux 中 gdb 调试的方法有许多,以下是其中的一种方法:

1. 禁用 core dump:可以通过以下命令将 core dump 禁用:

```

ulimit -c 0

```

这将确保应用程序在崩溃时不会生成任何 core dump 文件。gdb 通常需要访问 core dump 文件来执行调试 *** 作,因此禁用它们可以帮助防止调试。

2. 使用 ptrace:ptrace 系统调用可以被用来执行程序间的跟踪和调试,因此禁用它可以防止 gdb 调试。为了禁用 ptrace,可以在 /etc/sysctl.conf 文件中添加以下内容:

```

kernel.yama.ptrace_scope = 1

```

然后更新 sysctl.conf 文件,使设置生效:

```

sudo sysctl -p

```

这将限制 ptrace 仅在其父进程和子进程之间(或在具有适当权限的特权用户之间)进行。这样可以防止普通用户使用 gdb 调试其他用户、系统进程或其他特权进程。

请注意,以上方法仅仅是防止 gdb 调试的其中一种方法,还有其他方法可以绕过这些限制。因此,禁止 gdb 调试并不能完全保证系统的安全性和机密性。如果您对系统安全性有更高的要求,建议请咨询专业安全人员提供更加严格的安全策略。

GDB调试,建议去下个系统的文档;

GDB调试器

GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。gdb是一个用来调试C和C++程序的强力调试器,我们能通过它进行一系列调试工作,包括设置断点、观查变量、单步等。

其最常用的命令如下:

file:装入想要调试的可执行文件。

kill:终止正在调试的程序。

list:列表显示源代码。

next:执行一行源代码但不进入函数内部。

step:执行一行源代码而且进入函数内部。

run:执行当前被调试的程序

quit:终止gdb

watch:监视一个变量的值

break:在代码里设置断点,程序执行到这?锸惫移?

make:不退出gdb而重新产生可执行文件

shell:不离开gdb而执行shell

2)从你的描述上看来,你是用单独的gdb.exe调试器,调试的时候不需要运行程序的,编译的时候 只要加上相应的参数(”-g“)产生编译后的可执行文件,

以gcc编译sum.c(加-g选项产生debug信息):

gcc –g –o sum sum.c

在命令行上键入gdb sum并按回车键就可以开始调试sum了,再运行run命令执行sum。

对于这个信号而言,没有信号响应函数的话,进程应该会异常终止,对于系统已有的信号一般都是有默认处理的,具体的我有点记不得了,搜下其实就知道了.我在网上找了下各信号默认处理方式,你看看吧,对你有没有用

信号名称信号说明默认处理

SIGABRT 由程序调用 abort时产生该信号。 程序异常结束。 进程终止并且产生core文件

SIGALRM timer到期, 有alarm或者setitimer 进程终止

SIGBUS总线错误,地址没对齐等。取决于具体硬件。 结束终止并产生core文件

SIGCHLD 进程停止或者终止时,父进程会收到该信号。 忽略该信号

SIGCONT 让停止的进程继续执行继续执行或者忽略

SIGFPE 算术运算异常,除0等。 进程终止并且产生core文件。

SIGHUP 终端关闭时产生这个信号进程终止

SIGILL代码中有非法指令 进程终止并产生core文件

SIGINT终端输入了中断字符ctrl+c 进程终止

SIGIO 异步I/O,跟SIGPOLL一样。 进程终止

SIGIOT 执行I/O时产生硬件错误 进程终止并且产生core文件

SIGKILL 这个信号用户不能去捕捉它。 进程终止

SIGPIPE 往管道写时,读者已经不在了,或者往一个已断开数据流socket写数据。 进程终止

SIGPOLL 异步I/O,跟SIGIO一样。 进程终止

SIGPROF 有setitimer设置的timer到期引发 。 进程终止

SIGPWR Ups电源切换时 进程终止

SIGQUIT Ctrl+\,不同于SIGINT,这个是会产生core dump文件的。 进程终止并且产生core文件

SIGSEGV 内存非法访问,默认打印出segment fault 进程终止并且产生core文件

SIGSTOP 某个进程停止执行,该信号不能被用户捕捉。 进程暂停执行

SIGSYS 调用 *** 作系统不认识的系统调用。 进程终止并且产生core文件

SIGTERM 有kill函数调用产生。 进程终止

SIGTRAP 有调试器使用,gdb 进程终止并且产生core文件

SIGTSTP Ctrl+z,挂起进程。 进程暂停

SIGTTIN 后台程序要从终端读取成数据时。 进程暂停

SIGTTOU 后台终端要把数据写到终端时。 进程暂停

SIGURG 一些紧急的事件,比如从网络收到带外数据。 忽略

SIGUSR1 用户自定义信号 进程终止

SIGUSR2 用户自定义信号 进程终止

SIGVTALRM 有setitimer产生。 进程终止


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11318114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存