摘要:
调试子进程 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的 分别以及同时 调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-for
阅读全文
posted @ 2023-10-15 20:26
苏格拉底的落泪
阅读(436)
推荐(0)
摘要:
打印内存的值 1. 例子 #include <stdio.h> int main(void) { int i = 0; char a[100]; for (i = 0; i < sizeof(a); i++) { a[i] = i; } return 0; } gdb中使用“x”命令来打印内存的值,
阅读全文
posted @ 2023-10-15 19:18
苏格拉底的落泪
阅读(894)
推荐(0)
摘要:
让catchpoint只触发一次 1. 例子: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main(void) { pid_t pid; int i = 0; for (
阅读全文
posted @ 2023-10-15 19:08
苏格拉底的落泪
阅读(68)
推荐(0)
摘要:
进入和退出图形化调试界面 1. 例子 #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j =
阅读全文
posted @ 2023-10-15 19:00
苏格拉底的落泪
阅读(293)
推荐(0)
摘要:
打印数组的索引下标 1. 例子 #include <stdio.h> int num[10] = { 1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7, 1 << 8, 1 << 9 }; int main (void) {
阅读全文
posted @ 2023-10-15 18:39
苏格拉底的落泪
阅读(107)
推荐(0)
摘要:
打印数组中任意连续元素 1. 例子 #include <stdio.h> int main(void) { int array[201]; int i; for (i = 0; i < 201; i++) array[i] = i; return 0; } 在gdb中,如果要打印数组中任意连续元素的
阅读全文
posted @ 2023-10-15 18:35
苏格拉底的落泪
阅读(439)
推荐(0)
摘要:
打印ASCII和宽字符字符串 1. 例子: #include <stdio.h> #include <wchar.h> int main(void) { char str1[] = "abcd"; wchar_t str2[] = L"abcd"; return 0; } 用gdb调试程序时,可以使
阅读全文
posted @ 2023-10-15 18:28
苏格拉底的落泪
阅读(336)
推荐(0)
摘要:
设置观察点 1. 例子: #include <stdio.h> #include <pthread.h> typedef struct { int a; int b; int c; int d; pthread_mutex_t mutex; } ex_st; int main(void) { ex_
阅读全文
posted @ 2023-10-15 15:38
苏格拉底的落泪
阅读(53)
推荐(0)
摘要:
run和start区别 gdb调试器提供了多种方式来启动目标程序,其中最常用的就是 run 指令,其次为 start 指令。也就是说,run 和 start 指令都可以用来在gdb调试器中启动程序,它们之间的区别是: 1、默认情况下,run 指令会一直执行程序,直到执行结束。如果程序中手动设置有断点
阅读全文
posted @ 2023-10-15 12:22
苏格拉底的落泪
阅读(377)
推荐(0)
摘要:
断点管理 命令说明: 命令 说明 break 断点命令 break 函数名 为函数设置断点 break 代码函数 为某一行设置断点 break 类名:函数名 在某个类的函数设置断点 break 文件名:函数名 在文件名指定某个函数设置断点 break 文件名:行数 在文件名执行的代码行设置断点 br
阅读全文
posted @ 2023-10-15 11:14
苏格拉底的落泪
阅读(330)
推荐(0)
摘要:
向上或向下切换函数堆栈帧 1. 例子: #include <stdio.h> int func1(int a) { return 2 * a; } int func2(int a) { int c = 0; c = 2 * func1(a); return c; } int func3(int a)
阅读全文
posted @ 2023-10-15 10:47
苏格拉底的落泪
阅读(404)
推荐(0)
摘要:
宏macro与函数function cmake中的宏(macro)和函数(function)都支持动态参数 变量ARGC记录传入的参数个数 变量ARGV0,ARGV1,...顺序代表传入的参数 变量ARGV则是一个包含所有传入参数的list 变量ARGN也是一个包含传入参数的list,但不是所有参数
阅读全文
posted @ 2023-09-21 11:31
苏格拉底的落泪
阅读(428)
推荐(0)
摘要:
支持STL的标准库的方法 1. 测试示例: #include <iostream> #include <vector> using namespace std; int main () { vector<int> vec(10); for (int i = 0; i < vec.size(); i+
阅读全文
posted @ 2023-09-20 10:49
苏格拉底的落泪
阅读(356)
推荐(0)
posted @ 2023-09-20 09:56
苏格拉底的落泪
阅读(44)
推荐(0)
摘要:
gdb attach gdb attach的用法: #include <stdio.h> #include <thread> #include <queue> #include <mutex> #include <condition_variable> #include <chrono> names
阅读全文
posted @ 2023-09-20 09:44
苏格拉底的落泪
阅读(1636)
推荐(0)
摘要:
git多次提交,修改某次的提交 背景:git commit 进行了多次提交,但是需要修改某次的提交的时候。操作:比如有5个commit git rebase -i HEAD~5 那么会弹出一个编辑器。把你想要修改的commit前面pick改成edit2.然后修改3.git add4.git comm
阅读全文
posted @ 2023-09-13 09:36
苏格拉底的落泪
阅读(381)
推荐(0)
摘要:
参考资料 1. setfacl命令的基本用法
阅读全文
posted @ 2023-09-12 21:05
苏格拉底的落泪
阅读(353)
推荐(0)
摘要:
删除mds 1. 集群状态: [root@ceph02 ~]# ceph -s cluster: id: 9de7d2fb-245a-4b9c-8c1f-b452110fb61f health: HEALTH_OK services: mon: 1 daemons, quorum ceph01 mg
阅读全文
posted @ 2023-09-12 21:04
苏格拉底的落泪
阅读(365)
推荐(0)
摘要:
函数__atomic_compare_exchange_n 1. 函数原型: bool __atomic_compare_exchange_n (type *ptr, type *expected, type desired, bool weak, int success_memorder, int
阅读全文
posted @ 2023-09-12 20:43
苏格拉底的落泪
阅读(1833)
推荐(0)
摘要:
宏定义 宏 定义 注释 %{_syscongdir} /etc %{prefix} /usr macro definition comment %{_sysconfdir} /etc %{_prefix} /usr can be defined to /app for flatpak builds
阅读全文
posted @ 2023-09-11 11:45
苏格拉底的落泪
阅读(270)
推荐(0)
摘要:
使用条件依赖 在编写rpm包的spec文件过程中,我们通常会遇到如下字段: %bcond_without tests 这类定义一般出现在spec文件的开头,通常在后文中还会有引用,作为某个判断的标准,来确定是否执行这个if block,如 %if %{with tests} 如果按如上方式编写,会不
阅读全文
posted @ 2023-09-11 11:07
苏格拉底的落泪
阅读(445)
推荐(0)
摘要:
在安装和升级 %pre、%post、%preun 或者 %postun 阶段执行脚本 RPM 规范文件有几个部分,允许包在安装和删除时运行代码。这些代码被称为scriptlet,主要用于使用包中的信息更新正在运行的系统。当调用 scriptlet 时,它们将被提供一个参数。这个参数,通过 $1 访问
阅读全文
posted @ 2023-09-11 10:49
苏格拉底的落泪
阅读(1509)
推荐(0)
摘要:
查看用户的UID和GID 使用 id 命令可以很轻松的通过用户名查看UID、GID,下面来讲解一下这个命令的用法: id [选项]... [用户名] -a 忽略,兼容其它版本 -Z, –context 只输出当前用户的安全上下文 -g, –group 只输出有效的GID -G, –groups 输出
阅读全文
posted @ 2023-09-06 10:07
苏格拉底的落泪
阅读(1225)
推荐(0)
摘要:
解决mon is allowing insecure global_id reclaim问题 1.查询ceph状态: $ ceph -s cluster: id: 37ac4cbb-a2c6-4f81-af1e-e9e39c010c85 health: HEALTH_WARN mon is allo
阅读全文
posted @ 2023-09-03 16:11
苏格拉底的落泪
阅读(1327)
推荐(0)
摘要:
trl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L 代码格式化 Ctrl + Alt + O 自动导入 Ctrl + Alt + I 自动缩进 Tab / Shift + Tab 缩进、不缩进当前行(可选中多
阅读全文
posted @ 2023-08-20 11:51
苏格拉底的落泪
阅读(165)
推荐(0)
摘要:
git忽略子模块的变更 如果我们对某个git项目(以下称为主库)引用的子模块 git submodule 进行了某些变更,是无法直接通过 git add 命令将其添加到当前主库的暂存区的,因为这部分变更不归主库管理,但是每一次在主库下执行 git status ,又会提示有需要暂存的内容,如下图所示
阅读全文
posted @ 2023-08-19 17:20
苏格拉底的落泪
阅读(799)
推荐(0)
摘要:
用户态文件系统FUSE FUSE 是 Filesystem in Userspace 的缩写,也就是常说的用户态文件系统。Linux内核官方的解释: What is FUSE? FUSE is a userspace filesystem framework. It consists of a ke
阅读全文
posted @ 2023-08-14 11:22
苏格拉底的落泪
阅读(950)
推荐(0)
摘要:
命令iftop实时流量监控 iftop是一个命令行系统监控工具用来显示网络连接。默认按照带宽使用排序连接,并且最大带宽消耗排最上方。iftop在命名的网络接口上监听网络流量并显示按照主机对显示当前流量带宽。 如果没有指定接口,iftop将监听在外部接口(使用libcap和libncurses)的第一
阅读全文
posted @ 2023-08-11 11:48
苏格拉底的落泪
阅读(741)
推荐(0)
摘要:
命令fallocate生成大文件 命令说明: 选项: -c, --collapse-range 移除文件中的某个范围 -d, --dig-holes 检测零并替换为空洞 -i, --insert-range insert a hole at range, shifting existing data
阅读全文
posted @ 2023-08-11 11:33
苏格拉底的落泪
阅读(333)
推荐(0)
摘要:
vmware-NAT网络模式下-设置静态IP后无法连接Internet的问题 1.设置VMware手动DNS 编辑→虚拟网络编辑器→NAT设置→DNS设置 centos8 stream设置网络配置 临时配置:立即生效,重启后配置丢失 ifconfig eth0 192.168.0.128 netma
阅读全文
posted @ 2023-07-29 18:04
苏格拉底的落泪
阅读(466)
推荐(0)
摘要:
参考资料 1. 调整ceph的pg数(pg_num, pgp_num) 2. Ceph中PG和PGP的区别
阅读全文
posted @ 2023-07-28 13:35
苏格拉底的落泪
阅读(255)
推荐(0)
摘要:
异常 def execpt_test(a, b): result = a / b return result def divide_numbers(a, b): try: execpt_test(a, b) except ZeroDivisionError: print("除数不能为零!") pri
阅读全文
posted @ 2023-07-28 10:02
苏格拉底的落泪
阅读(34)
推荐(0)
摘要:
迭代器 1. next函数原型: next(iterable[, default]) 参数说明: iterable -- 可迭代对象 default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。 it = iter([1
阅读全文
posted @ 2023-07-27 09:42
苏格拉底的落泪
阅读(52)
推荐(0)
摘要:
输出函数:print print() 方法用于打印输出,最常见的一个函数。 print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。 语法: print(*objects, sep=' ', end='\n', file=sys.stdout, f
阅读全文
posted @ 2023-07-24 11:35
苏格拉底的落泪
阅读(395)
推荐(0)
摘要:
for循环 "for" 是一个迭代循环语句,用于遍历可迭代对象(例如列表、元组、字符串等)中的元素,并执行相应的操作。它的基本语法如下: for 变量 in 可迭代对象: # 执行操作 在每次循环中,变量会依次被赋值为可迭代对象中的元素,然后执行相应的操作。这个循环会一直进行,直到所有的元素都被遍历
阅读全文
posted @ 2023-07-24 09:16
苏格拉底的落泪
阅读(257)
推荐(0)
摘要:
通过nfsd搭建nfs server NFS(Network File System)是Linux系统之间(类Unix系统之间)使用最为广泛的文件共享协议,不同于ftp或http,需要将文件下载后使用,NFS方式的共享是可以直接使用而不需要下载的。 mout过程: 原理: NFS本身的服务并没有提供
阅读全文
posted @ 2023-07-20 16:46
苏格拉底的落泪
阅读(678)
推荐(0)
摘要:
option 在 CMake 中,option() 命令的默认值取决于你如何定义它。 option() 命令的语法是: option(<variable> "description" [initial value]) 如果你指定了初始值(ON 或 OFF),那么默认值就是你指定的值 如果你没有指定初
阅读全文
posted @ 2023-07-19 20:37
苏格拉底的落泪
阅读(334)
推荐(0)
摘要:
刚刚 参考资料 1. 修改ceph的IP地址
阅读全文
posted @ 2023-07-18 15:52
苏格拉底的落泪
阅读(42)
推荐(0)
摘要:
逻辑运算符 print (1 and 5 or 0) #先计算1 and 5 为5再计算5 or 0 为5 print (1 or 5 and 0 or 6 and 0) """ 先计算5 and 0为0,6 and 0为0 整个语句就变为1 or 0 or 0结果为1 """ print(not
阅读全文
posted @ 2023-07-11 14:54
苏格拉底的落泪
阅读(20)
推荐(0)
摘要:
条件变量Condition 函数作用说明: 函数 作用 acquire 线程锁,注意线程条件变量 Condition 中的所有相关函数使用必须在acquire/release内部操作; release 释放锁,注意线程条件变量 Condition 中的所有相关函数使用必须在acquire/relea
阅读全文
posted @ 2023-07-07 10:30
苏格拉底的落泪
阅读(76)
推荐(0)