自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1388)
  • 资源 (8)
  • 收藏
  • 关注

原创 c++动态库 改变加载 路径顺序

usr/local/log4cxx/lib放到 前面。可以 把 想提前加载的 路径目录。

2024-05-22 20:59:13 36

原创 valgrind still reachable: 533,053 bytes in 61 blocks

总结:(1)提示没有free或still reachable的,不仅需要考虑mallc、calloc没有free的问题,还需考虑文件打开没有关闭的问题。显示导致still reachable问题的代码,否则不显示。--show-reachable=yes是显示内存泄漏的地点。(2)开启valgrind的选项。

2024-05-22 20:46:05 58

原创 基于GCC的工具objdump实现反汇编

一:objdump介绍在 Linux中,一切皆文件。Linux 编程实际上是编写处理各种文件的代码。系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和多样的用途。目标文件是包含带有附加地址和值的助记符号的路线图。这些符号可以用来对各种代码段和数据段进行命名,包括经过初始化的和未初始化的。它们也可以用来定位嵌入的调试信息,就像语义 Web,非常适合由程序进行阅读。

2024-05-22 20:41:05 151

原创 valgrind 加载 debug 信息 sym 符号表文件

Valgrind--extra-debuginfo-path=/xxx/xxxxvalgrind --tool=memcheck --leak-check=full --extra-debuginfo-path=/mnt/lib64 --log-file=valgrind.log ./bin/xxx

2024-05-22 14:57:24 139

原创 gdb与symbol符号表文件的调试

objcopy --only-keep-debug app app.debug 把debug信息拷贝到 app.debug 文件中,可以用于gdb的调试。objcopy --only-keep-debug app 最终 app 将不包含debug信息。如下图, 一个是剥离了debug信息,一个是没有剥离 debug 信息。注意:因为我这里只加载了一个app的symbol,所以断点在app里都是可以解析的,而如果一些动态库也有相应的symbol文件的话,如果在调试也是需要另外载的。.sym 是符号表文件。

2024-05-22 14:52:40 95

原创 ubuntu 卸载 程序

找到程序 所在的 安装包。

2024-05-22 13:35:02 109

原创 ubuntu 根据 服务名(应用程序) 查 软件包名

dpkg -S 文件路径。

2024-05-22 13:32:42 107

原创 无root帐号密码,切换到root帐号 sudo su

sudo su输入当前帐号密码。

2024-05-22 13:23:07 183

原创 工具集(gcc、readelf、objdump、objcopy和strip等)使用方法

交叉编译链安装及工具集(gcc、readelf、objdump、objcopy和strip等)使用方法_交叉编译工具-CSDN博客

2024-05-21 16:49:56 189

原创 G_(mkstemp): failed to create temp file: /tmp/valgrind

检查/tmp目录是否满了,或者改变tmp目录位置。

2024-05-20 14:23:16 109

原创 grep 不区分大小写

grep -i 'text' file.txtenv | grep -i 'qnx'

2024-05-17 16:34:18 56

原创 android 目录

不同的用户会把各自的数据和应用存储/安装在 /data/user/用户号/(用户号从 0 开始顺序编号,0 ,1...)下的各个目录中,系统运行时,把 /data/data 下的对应目录做符号链接,使之指向 /data/user/用户号/ 下的对应目录,以这种方式让 Android 系统能支持“多用户”。:存放了多个 XML 文件,每个 XML 文件规定了个内置应用(不论是 AOSP 的还是厂商提供的〕的权限,它会被 PackageManager 使用。:文件系统是用于(输出)内核级的调试信息的。

2024-05-16 13:58:58 364

原创 linux 命令 grep 排除 No such file or directory

会过滤掉包含 "No such file or directory" 的行。是将错误输出重定向到标准输出,然后。

2024-05-16 13:30:59 132

原创 linux du 排除 某一个目录 proc

Linux的du用法排除某个目录_du -sh 排除目录-CSDN博客du -sh /* --exclude="*proc*"

2024-05-16 13:23:18 173

原创 android du 排除 proc 目录

busybox du -sh * -x "proc"

2024-05-16 11:22:05 346

原创 ubuntu 计算器 gnome-calculator

sudo apt install gnome-calculatorgnome-calculator

2024-05-16 09:15:11 261

原创 pthread_setname_np 线程设置名字 c++

可以通过命令cat /proc/pid/task/[tid]/comm来查看线程名称。成功时,这些函数返回 0;出错时,它们返回一个非零错误号。线程设置名称,其长度限制为 16 个字符(含\0在内)

2024-05-15 16:13:57 225

原创 c++ fs::rename

在Linux系统中,这通常通过rename系统调用来实现。

2024-05-15 15:55:08 160

原创 DOT + graphviz 轻松画图

图可视化之Graphviz - 知乎Graphviz 是由AT&T Research、Lucent Bell实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络。具体地,其使用一种名为dot语言的DSL来编写脚本

2024-05-15 15:45:16 150

原创 使用 git rebase 还是 git merge,优缺点

看一下gerrit的模式在你打算 rebase 的时候,一定要想想是否还有别人也在开发这个分支。

2024-05-11 10:35:07 298

原创 Vi删除光标所在位置的字符

当你想要删除光标所在位置的一个字符时,可以在命令模式下。

2024-05-11 10:29:15 245

原创 vim 替换

该命令会在整个文件中替换所有匹配的old_string为new_string,其中%表示整个文件范围,g表示全局替换。该命令会在当前行内替换所有匹配的old_string为new_string,其中g表示全局替换。这会将第20行到第30行内的old_string替换为new_string。如果只想替换特定范围内的文本,可以使用范围指定,如。

2024-05-10 16:00:38 196

原创 git checkout . 数据还能找回来吗

但是如果你在git checkout .之前没有git stash ,那么就恢复不了了.恢复使用 git stash pop。建议使用 git stash。

2024-05-10 10:55:30 124

原创 repo upload 指定 提交

repo upload --commit 1a2b3c4d5e6f7g8h9i0j

2024-05-09 15:23:03 304

原创 新一代异步IO框架 io_uring

io_uring是一个Linux内核的异步I/O框架,它提供了高性能的异步I/O操作,io_uring的目标是通过。io_uring的设计使得应用程序可以同时处理大量的I/O操作,从而提高系统的吞吐量和响应速度。方式来实现高效的异步I/O操作。开销来提高I/O操作的性能。2.io_uring实现原理。1.io_uring简介。io_uring通过使用。

2024-05-09 15:19:21 139

原创 boost::asio::async_connect

会运行所有已注册的异步操作直到没有更多的异步操作可以执行。在实际应用中,你可能需要有更复杂的方式来停止事件循环,例如使用条件变量或其他同步机制。是一个异步函数,用于初始化一个连接到 TCP 端点的异步操作。这是一个非阻塞函数,它会立即返回并允许程序执行其他任务,而连接操作将在后台进行。连接完成后,我们的完成处理函数会被调用,在这里我们会检查是否有错误发生,并输出相应的信息。然后我们指定了要连接的服务器的 IP 地址和端口号。函数来初始化一个异步连接操作。在这个例子中,我们创建了一个。以下是一个简单的使用。

2024-04-30 10:58:16 235

原创 boost::asio::ip::tcp::acceptor::reuse_address

对象,并将其绑定到一个自由的端口(通过指定端口号为0)。,允许在绑定后立即重新使用地址。最后,我们打印出绑定后的端口号。对象是否可以在绑定到一个地址后立即重新使用该地址。下面是一个简单的示例,展示如何在。在这个例子中,我们创建了一个。是一个选项,用于设置。

2024-04-30 10:54:20 459 1

原创 boost::asio::ip::tcp::socket set_option

请注意,这个例子假设服务器在本地机器(127.0.0.1)的8080端口上运行,并且已经设置好了监听该端口的服务。实际使用时,需要根据实际情况调整服务器的IP地址和端口。是一个用于异步I/O操作的类,它是Boost.Asio库的一部分,专门用于处理TCP套接字。方法读取数据,并将其打印到控制台。最后,我们关闭了与服务器的连接。对象,指定服务器的IP地址和端口。为了接收服务器的响应,我们使用。连接成功后,我们使用。在这个例子中,我们首先创建了一个。然后,我们创建了一个。以下是一个简单的使用。

2024-04-29 21:06:34 438 2

原创 boost::asio::ip::tcp::resolver async_resolve异步解析

请注意,这个例子需要 Asio 库支持,在编译时可能需要链接相应的 Asio 库。是 Asio 库中用于处理 DNS 解析的一个组件。它可以将主机名(例如 "" 并且服务名 "http"。然后,我们遍历并打印所有返回的端点信息。IP 地址,或者将服务名(例如 "http")转换为端口号。对象,并使用它来解析主机名 "在这个例子中,我们创建了一个。以下是一个简单的使用。

2024-04-29 20:48:36 539 2

原创 C++中 std::mt19937是含义及使用方法

它是一个高质量的伪随机数生成器,特别适合于需要大量独立且近似均匀分布的随机数的应用。在 C++ 中,std::mt19937 可以与其他 std::random_device 配合使用,作为初始化随机数生成器的种子源。周期长:该算法有一个非常大的周期,意味着在达到周期点之前,生成的数列是随机的。均匀分布:生成的随机数具有很好的均匀性,即生成的数在任何区间内都大致相等。快速生成:虽然它是伪随机数生成器,但它的速度很快,可以生成大量的随机数。可预测性差:由于它的随机性,生成的数列很难预测。

2024-04-29 16:53:35 335

原创 boost::asio::io_context, boost::asio::steady_timer定时器

函数用于注册一个异步等待操作,当定时器到期时,给定的回调函数会被调用。在回调函数中,我们检查错误代码,如果没有错误,则输出一条消息。,并设置了它在5秒后过期。然后我们注册了一个异步等待操作,并在定时器到期时会打印一条消息。的构造函数接受一个时间参数,这个参数表示定时器何时应该过期。在这个例子中,我们使用了。,可以用来在给定的时间点执行一个函数或者是在一个固定的时间间隔后执行一个函数。是执行异步操作所必需的,它会阻塞直到所有注册的异步操作都完成。在这个例子中,我们创建了一个。)关联的,因此在创建。

2024-04-28 21:00:38 171

原创 性能分析工具nanobench bcc-offcputime perf 火焰图 vallgrind

火焰图(FlameGraph)是是由 Linux 性能优化大师 Brendan Gregg 发明的。通过 perf 等工具分析得到结果,看起来就像是火焰,这也是它的名字的由来。火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈。火焰图就像是给一个软件系统拍的 X 光照片,可以很自然地把时间和空间两个维度上的信息融合在一张图上,以非常直观的形式展现出来,从而反映系统在性能方面的很多定量的统计规律。

2024-04-26 15:15:15 168

原创 c++日志级别设置 printf

【代码】c++日志级别设置 printf。

2024-04-24 11:08:01 262

原创 用kill -6 pid 主动杀死进程, 使进程abort/coredump

【代码】用kill -6 pid 主动杀死进程, 使进程abort/coredump。

2024-04-22 17:37:21 225

原创 fs::directory_iterator

类来遍历目录中的所有内容。例如,下面的代码将遍历目录。如果你只想遍历目录中的文件,可以使用。

2024-04-19 14:50:23 238

原创 uds socket

发送数据过程就是创建buffer 并将要发送的数据写入buffer中,然后将buffer挂载到远端的接收队列(sk_receive_queue)上,并调用远端的sk_data_ready()函数唤醒远端进行数据接收。客户端从peer_wait等待队列上返回后,在本地创建服务端的 struct sock 并与本地的 socket进行绑定,这样就形成了一个跟远端建立连接后的完成的socket;客户端通过上面提到的文件找到对应的服务端的套接字描述符,发起连接,并在peer_wait上等待服务端返回信息;

2024-04-16 16:44:33 138

原创 gdb调试 单步调试有时候会 跳行

gdb调试 单步调试有时候会 跳行,而不是一步一步执行,这个是因为。大概率,可以ldd看一下。,那么需要 替换一下。

2024-04-16 14:25:34 73

原创 gdb 打印 变量 类型

gdb) whatis xxxx

2024-04-15 16:26:44 89

原创 Python获取当前路径

【代码】Python获取当前路径。

2024-04-15 16:24:44 63 1

原创 pdf转 图片 工具

PDF转换

2024-04-14 11:28:06 95

opendpi-1.3.0.tar.gz

开源代码,关于数据包的深度检索资料!这里面有迅雷,QQ,FTP,ssh等的深度分析!

2012-08-17

libev代码实例

libev的一个socket通讯代码实例,有客户端和服务端;

2011-12-29

WINGRB0206.exe

WINGRB0206 WINGRB0206 WINGRB0206

2011-07-31

4-http-cookies.pdf

4-http-cookies.pdf 4-http-cookies.pdf 4-http-cookies.pdf

2010-03-03

VC+数据库编程(Word).rar

VC+数据库编程(Word).rar VC+数据库编程(Word).rar

2009-09-16

Windows+网络编程第二版.CHM

Windows+网络编程第二版.CHM Windows+网络编程第二版.CHM

2009-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除