- 博客(16)
- 资源 (12)
- 收藏
- 关注
原创 Linux文件监控方法
添加对指定文件的监控,可以选择需要监控的事件(设置mask);系统返回一个文件描述符,使用完毕需要释放(close)从fd指定的inotify实例中,删除wd指定的监控项。IN_CLOSE_WRITE:关闭为了写入而打开的文件。IN_ACCESS:文件被访问(read)IN_ATTRIB:文件元数据改变。
2024-02-20 00:00:00
1007
1
原创 windows用户态程序排错——程序无法运行和奔溃排查
有的时候我们的应用程序在调试时使用的好好的,但在其他的PC上运行时就可能会出现无法运行、异常退出的问题,这个时候就需要我们有足够的手段进行排查:1)日志排查:好的应用程序也必定集成了好的日志模块,用于程序异常时提供足够的信息供开发人员迅速定位问题;所以在开发程序的时候必不可少的就是在关键位置添加日志,在程序已知的异常判断位置,将错误信息尽可能多的写入日志:比如函数执行失败,一般都需要将失败的返回值、当前的错误码以及关键的函数参数写入日志。日志系统...
2021-01-16 20:43:11
649
原创 C语言单元测试(UT)用例编写——gtest+stub打桩
stub工具源码:https://github.com/coolxv/cpp-stub/tree/master/src这里做下简单的背景介绍,打桩的概念:可以先去看下先去的文章:https://blog.youkuaiyun.com/anranjingsi/article/details/106084223前面也使用过gtest+gmock框架给C/C++做单元测试,但gmock的使用有着明显的限制:1)必需是C++的类函数词可以被mock; 2)要求编码时就要考虑那些函数会被mock,将其定义为虚函数;3)需
2021-01-16 20:40:59
16136
3
原创 linux上存储和读取bmp图像文件
将图像数据写bmp文件数字图像在外存储器设备中的存储形式是图像文件,图像必须按照某个已知的、公认的数据存储顺序和结构进行存储,才能使不同的程序对图像文件顺利进行打开或存盘操作,实现数据共享。图像数据在文件中的存储顺序和结构称为图像文件格式。BMP文件是Windows操作系统所推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,所以称为位图(bitmap)文件,因其文件扩展名为BMP,故称为BMP文件格式,简称BMP文件。BMP文件总体上由4部分组成,分别是
2020-09-20 09:30:22
4804
原创 windows用户态程序排错——异常处理
关于异常1、C++标准异常:c++提供了一种异常的处理方法:try()catch();不知道小伙伴有没有这样的疑惑:1)为何我们要捕获异常?2)何时使用异常处理?3)异常处理会不会降低程序性能?4)如何处理异常呢?1)为何需要捕获异常?何时抛出异常?异常处理就是处理程序中的错误。异常,通俗来说,对于被调用的函数,如果说因为调用者所引发的错误,且无法继续执行时,需要通知调用者,发生错误无法执行了;让上层的逻辑去处理它。异常处理,对于程序来说,可以知道什么出错了?哪里出错了?以及为什
2020-09-20 09:25:42
427
1
原创 记录一些git的好用命令
在使用git的过程中,我发现自己踩了很多的坑,为了记录我踩过的这些坑,以及我如何解决这些坑的方法,有了这个水水的博文。当然这里也会记录一些基础的git命令,以及遇到的问题的解决。1)基础git命令:git branch 查看本地的分支情况git branch -a ...
2020-09-03 20:03:19
154
原创 C\C++内存池的实现
一开始想到要写一个内存池是因为项目过程中,需要用到一个链表进行数据的管理,但是因为需要不停的对链表中的节点进行增加和删除,因此如果不停的malloc和free,给我的感觉是会不会太浪费内存和CPU了?所以我开始想如何才能解决这个麻烦。我的问题:一个拥有最大长度(MAX_LEN)的链表,然后我会不断的遍历链表取数据,并删除节点;也会不断的向链表插入新的数据节点;当插入时发现链表长度>MAX_LEN,就删除最开始插入的那个数据节点。乍一看,这个问题如果用不停的malloc、free,insertL
2020-07-01 23:23:12
141
原创 linux开机启动脚本制作
我们在linux系统中往往需要将自己的程序或脚本开机自启动,linux也提供了多种方法,这里简单介绍下3种常用的方法,详细说明下linux下的service。方法一:修改rc.local,自动启动脚本Linux操作系统在启动时,会调用init进程,获取runlevel信息,执行对于runlevel下的脚本,启动各个服务;接着会执行/etc/rc.d/rc.local文件。所以,如果我们有任何想要开机启动时需要进行的工作,都可以把它写入rc.local文件。注意:并不是所linux系统都.
2020-07-01 21:42:47
1031
原创 Makefile如何调用其它Makefile
假设一个目录下有多个目录,每个目录下都是一个子工程,都有自己的Makefile,那么如何通过一个Makefile来管理每个目录下的Makefile呢?all: cd ./work1 && make cd ./work2 && make cp ./work1/result1 ./bin cp ./work2/result2 ./binclean: rm ./work1/*.o ./work1/result1 ./work.
2020-07-01 20:35:42
2860
原创 如何监控windows进程的句柄、内存和cpu(三)
紧接上文,接下来就是获取进程的句柄数,句柄就是windows进程中各种对象的标识,一般应用程序会通过句柄来执行各种操作,通过监控设备的句柄,我们可以大致判断出进程是否存在异常,比如句柄泄漏,会导致系统卡顿,死机。 看需要用到系统API函数:GetProcessHandleCount函数:BOOL GetProcessHandleCount( HANDLE hProcess, PDWORD pdwHandleCount); 函数说明:检索指定进程的打开句柄的数量参数:.
2020-05-15 22:04:46
2175
原创 windbg调试工具使用问题——Win32 error On87错误
旧版windbg:6.12.0002.633版本在调试windows10的全量dump文件的时候,发现使用windbg打开dump文件报错:Could not find the xxx\MEMORY.DMP Dump File,Win32 error On87 此错误证明为windbg旧版本故障,更新windbg即可。windbg10下载:https://download.youkuaiyun.com/download/anranjingsi/12420783或者windows官网:https://do
2020-05-14 22:03:40
11774
1
原创 如何监控windows进程的句柄、内存和cpu(二)
接下来,我们看如何获取进程的CPU使用率:CPU使用率:指进程在一段时间内消耗的CPU时间与该时间段长度的比值。windows本身并没有提供直接获取进程CPU使用率的函数,但我们可以根据进程的计时信息来间接计算出进程的瞬时CPU占用:1)记录进程当前在用户模式和内核模式下已经执行的时间;2)1s后,再次记录进程在用户模式和内核模式下已经执行的时间;3)将两次时间相减,就是这1s时间内进程在CPU上执行的时间;用执行时间/记录间隔时间 = 进程的CPU占比老规矩,看需要用到哪些系.
2020-05-14 21:41:44
1356
原创 如何监控windows进程的句柄、内存和cpu(一)
说明:输入一个进程名字,输出该进程的句柄、内存占用、CPU使用情况。ok,那我们来看下如何扯出这个程序,以下演示程序基于vs2008,更高版本可能会有字符问题。1)在系统中查找是否存在指定进程名的进程:这里需要用到windows提供的几个API函数:CreateToolhelp32Snapshot、Process32First和Process32Next。函数的简单介绍:HANDLE WINAPI CreateToolhelp32Snapshot(__in ...
2020-05-13 20:18:21
1734
原创 linux系统编译anroid的库(开源库zlib、jpeg或自己写的库)
环境:Ubuntu 14;android-ndk-r11;说明:此方法适用于将各种库移植到android上,或者将自己编写的代码编译成动态库。方法:1.在需要编译成库的代码目录下,添加Makefile、Android.mk、Application.mk三个文件;2.Makefile内容如下:###指定NDK的目录NDK_PATH=/xxx/xxxx/android-ndk-r11 all:${NDK_PATH}/ndk-build \N...
2020-05-13 16:10:35
1610
原创 关于gmock单元测试的使用小白知识,初使用gmock前推荐看
什么是单元测试?单元测试,维基百科给出定义:Unit Testing,又称为模块测试,是针对程序模块(软件设计的最小单元)进行正确性检验的测试工作。什么是模块?或者什么是最小单元?通俗的说就是函数或者类的方法。“单元”的定义,其实可以更加宽泛,在面向对象语言中,一个单元可以指一个方法,也可以是一个类。单元的选定更多的取决于我们测试的意图。为什么需要单元测试?我们常说的单元测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。简单来说,一个单元测试就.
2020-05-12 20:26:00
4522
2
操作系统的符号表文件
2020-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人