![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术杂谈
文章平均质量分 67
大城市的小蜗牛
这个作者很懒,什么都没留下…
展开
-
进程【1】-理解子进程与父进程的竞争关系
系列文章目录进程【1】-理解子进程与父进程的竞争关系文章目录系列文章目录前言一、进程的生命周期一、进程的创建,使用`fork`之后,存在怎样的竞争条件二、使用步骤1.引入库2.读入数据总结前言提示:解决以下几个问题:进程的创建,使用fork之后,存在怎样的竞争条件子进程和父进程的竞争关系如何产生?子进程和父进程的竞争关系如何消除?子进程和父进程的竞争关系典型的用例一、进程的生命周期要想弄清楚提出的问题,我们需要理解进程的生命周期,以及fork的具体过程。一、进程的创建,使用原创 2022-05-20 06:39:27 · 404 阅读 · 0 评论 -
C++通过jsoncpp类库读写JSON文件-json用法详解 介绍
JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式。JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择。JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的。编译方法:使用Jsoncpp生成的lib文件:首先下载Jsoncpp源码文件,用cmake编译主目录中的CMakeLists.txt,之后打开sln文件,进行编译,会在src\lib_转载 2020-05-20 08:40:56 · 477 阅读 · 0 评论 -
【Linux】制作备份Raspberry Pi树莓派SD卡的img映像文件
谢谢博主的分享https://blog.csdn.net/zhufu86/article/details/109962309?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242添加链接描述方法1执行过程备份原分区数据删除原分区在原分区的起始点上新建分区,使用默认大小(SD卡剩余大小)保存分区修改,格式化新分区恢复数据对应的脚本如下#! /bin/sh原创 2020-11-26 15:29:43 · 436 阅读 · 0 评论 -
GDB【0】-调试指南断点设置
前言上篇《GDB调试指南-启动调试》我们讲到了GDB启动调试的多种方式,分别应用于多种场景。今天我们来介绍一下断点设置的多种方式。为何要设置断点在介绍之前,我们首先需要了解,为什么需要设置断点。我们在指定位置设置断点之后,程序运行到该位置将会“暂停”,这个时候我们就可以对程序进行更多的操作,比如查看变量内容,堆栈情况等等,以帮助我们调试程序。查看已设置的断点在学习断点设置之前,我们可以使用info breakpoints查看已设置断点:info breakpointsNum Type转载 2020-05-14 20:50:00 · 2532 阅读 · 0 评论 -
GDB【5】-嵌入式平台xxx-linux-gdb远程调试动态库
1.下位机准备工作下位机调试启动脚本 1 #!/bin/bash 2 3 version='01.00.0005' 4 NAND_PATH='/nandflash' 5 LIB_PATH=$NAND_PATH/lib 6 BIN_PATH=$NAND_PATH/bin 7 CFG_PATH=$NAND_PATH/config 8 DB_PATH=$NAND_PATH/database 9 LOG_PATH=$NAND_PATH/log 10 SH_PATH=$NA原创 2020-05-29 10:16:05 · 1049 阅读 · 1 评论 -
GDB【4】-如何在GDB中忽略Signal信号处理
在使用GDB调试C/C++程序时,如果刚好程序中需要对特殊Signal处理,则在调试这类应用时需要GDB忽略对该Signal的处理。本文来自GBD官方文档的翻译,仅供参考。信号(Signals)信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。UNIX定义了许 多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号; SIGKILL表示终止程序运转载 2020-05-26 12:56:55 · 2473 阅读 · 0 评论 -
GDB【3】- 多线程调试基本命令
多线程调试的基本命令:1.info threads显示当前可调试的所有线程。每个线程会有gdb为其分配的ID,后面的操作会用到这个ID。前面带’*'号的是当前正在调试的线程。2.thread ID切换当前调试的线程为指定ID的线程。3.break threa锁定d_test.c:123 thread all ,在所有线程中相应的行上设置断点4.thread apply ID1 ID2 command让一个或者多个线程执行gdb命令command。5.thread apply all com原创 2020-05-21 19:20:50 · 337 阅读 · 0 评论 -
gdb【2】断点——临时断点、条件断点、忽略断点
一、临时断点1.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 (int argc, char *argv[]) { ex_st st = {1, 2, 3, 4, PTHREAD_MUTEX_INITIALIZER}; printf("%转载 2020-06-02 17:13:25 · 1918 阅读 · 0 评论 -
gdb【6】- 自动显示多个变量的值
调试程序的时候有时候要一行监控多个变量的值, 可以这样写:p {var1, var2, var3}要跟踪程序自动显示,可以使用displaydisplay {var1, var2, var3}要其中任何一个改变时显示,可以使用watchwatch {var1, var2, var3}.........转载 2020-06-02 17:28:07 · 859 阅读 · 0 评论