
c++
文章平均质量分 92
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 评论 -
QT 多语言例子的编译和运行——简单几步了解QT翻译的机制
通过简单的几步了解 QT 的多语言翻译原创 2022-08-21 10:50:43 · 701 阅读 · 0 评论 -
一步一步在 Windows 10 用 visual studio 2019 编译 zmqpp 4.2.0 版
zmqpp 是 libzmq 的高级 C++ 封装,不但提供了针对 libzmq C 接口的 C++ 封装,还提供了一些附加功能(Reactor模式, Actor模式 和 ZAP支持),详细见 zmqpp 文档 zmqpp: Main Page。在 ubuntu linux发行版上,可以直接用 apt-get 来安装使用,非常方便,但是在 windows 上如何编译使用却资料甚少。因为没有找到 zmqpp 的 windows 预编译发行版,所以只能自己用源码编译。这篇文章将一步一步实现在 windows 1原创 2022-07-14 15:08:41 · 2483 阅读 · 8 评论 -
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 评论 -
陈硕《Linux多线程服务端编程》中的EventLoop Reactor 的 c++11 版本
把原书第8章的例子《设计Reactor——如何从头开始编写非阻塞网络库》地址:https://github.com/chenshuo/recipes/tree/master/reactor用 c++11 搞了一遍,并且简化到全部代码放在一个文件中,方便察看。步骤0:什么都不做的 event loop 事件循环EventLoop, assertInLoopThread()这个步...原创 2019-12-29 11:21:10 · 973 阅读 · 0 评论 -
c++11 中能不能在构造函数中创建并启动线程,这样安全吗?
最近在写 c++ 的程序,做了一个类,这个类对象初始化时,需要创建一个使用该类成员函数作为入口函数的线程。自然地就想到在构造函数中启动线程,但是在陈硕《Linux多线程服务端编程》中提到,在构造函数中启动线程是不安全的,于是对这个问题进行了一番学习。后来在https://stackoverflow.com/questions/33571921/can-initialising-a-threa...原创 2019-12-24 11:25:39 · 5322 阅读 · 2 评论 -
如何编写共享库(一)- 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 评论 -
在windows下编译Botan
官方的说明在这里https://botan.randombit.net/manual/building.html#on-windows但是我在VS2013一直不能编译成功,总是出现error C3646: “noexcept”这样的错误,后来查了一圈发现原来是只有VS2015以上才能支持这个 noexcept 功能,改用VS2017来编译就好了。把过程再简单记录一下:1. 下载...原创 2019-04-03 10:51:35 · 2521 阅读 · 0 评论 -
windows下使用Botan的奇怪问题[已解决]
最近要移植一个linux的程序到windows,其中字符编码各种坑先不去说,在linux运行得好好的Botan库在windows下死活不行,按说我们只用了这个库的一个小功能,移植应该不存在大问题,折腾了两天,才发现是编译的库不支持Debug造成的,改用Release问题马上就解决了。一. 问题程序用到了botan的 CryptoBox::decrypt 函数用来解密原先加密的字符串,lin...原创 2019-04-04 16:11:13 · 1033 阅读 · 0 评论