
linux
文章平均质量分 94
found
这个作者很懒,什么都没留下…
展开
-
调试器(debugger)是如何工作的
当然,我们可以尝试让调试器和被调试进程(debuggee)使用相同的内存空间,但是如果被调试进程(debuggee)本身又创建了新的进程怎么办。此外,只要进程不是处于正在运行的状态,内核就可以看到这个进程的寄存器值,而调试器必须能够知道被调试进程(debuggee)的寄存器值。由于我们已经知道如何在调试器中等待被调试进程里发生的特定事件,另外,我们现在也知道了如何恢复地址0x400516的原始值(和我们修改0xcc的过程一样)。幸运的是,我们是在x86_64上,不对齐的内存访问是允许的。翻译 2023-02-08 18:09:13 · 836 阅读 · 0 评论 -
探究用Linux信号处理函数安全退出进程
SIGINT(2) 触发的 10000 号处理函数运行到20%时被第1个 SIGTERM(15) 的 10001 号处理函数中断,10001号处理函数执行到 40%时又被SIGUSER2(12) 处理函数10002号中断,10002号处理函数执行完成之后10001号处理函数继续执行,10001号完成时系统又发送了第 2 个SIGTERM(15)触发了10003号处理函数,当10003号处理函数完成时才继续运行 10000号处理函数。原创 2023-02-06 15:49:02 · 758 阅读 · 0 评论 -
一文读懂如何在 Linux 中编写设备驱动程序
我现在将继续修改我刚刚创建的驱动程序,以开发一个真正在真实设备上执行操作的驱动程序。我将使用简单而无处不在的计算机并行端口,驱动程序将被称为 parlelport(并行端口)。译者:时至今日,并口已不常见,而非作者所说的那样“无处不在”,我本来想找替代方法的,比如串口的 DTR 或者 RTS 脚给它置高电平,但是转念一想,现在的电脑上串口也不常见了,大家真的要实验,可能只能去买一个 ARM 开发板,或者其它什么实验板来玩一玩了。并口(并行端口)实际上是一种用于数字信息输入输出的设备。...翻译 2022-08-17 22:45:26 · 3433 阅读 · 0 评论 -
花生壳的向日癸在linux mint上安装失败的问题
下载的文件SunloginClient-10.0.2.24779_amd64.deb 在linux mint上安装,会有报错信息,安装完成后无法运行程序。用以下方法修改一下deb文件,也就是解包修改内部的文件然后再打包就可以解决这个问题:1. 把SunloginClient-10.0.2.24779_amd64.deb 文件复制到一个目录2. 用下面的命令创建好目录结构$ mkdir -p newpack oldpack/DEBIAN3. 用下面命令把deb文件解压出来$ dpkg..原创 2020-05-28 09:30:21 · 1015 阅读 · 0 评论 -
linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突
1.奇异的现象由于有一个功能(用钉钉群机器人向钉钉群发送消息)采用了libcurl库,所以链接了libcurl库,出现了一个非常奇怪的现象:编译正常,运行正常,但是运行到发送https post请求时,整个程序死机,让libcurl以VERBOSE方式输出执行信息时,发现停止在ALPN, offering http/1.1这里不动了,CPU有一个核100%占用。单独弄一个项目来测试libc...原创 2020-04-02 21:11:00 · 10773 阅读 · 5 评论 -
如何编写共享库(一)- How To Write Shared Libraries 中文译本
0. 译者的话原文是由Ulrich Drepper 发布于下面的链接中https://www.akkadia.org/drepper/dsohowto.pdf因为需要制作一个c++的共享库,译者进行了很多检索,发现目标都指向于这篇文章。由于这个方面系统性介绍的中文资料难觅踪影,所以萌发了翻译此文章的念头。0.1 关于作者Ulrich Drepper 是“GNU C标准库”...原创 2019-09-10 10:51:48 · 1197 阅读 · 2 评论