自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux 内核调试环境搭建

学习Linux内核,我们可以看书,实际我们最好可以有一个可以调试的环境,本文就简单介绍一下使用Qemu 和gdb 来调试和查看Linux kernel。在ubantu 20.04 的PC 上面编译内核源码,通过QEMU 来运行内核,然后使用gdb 来调试查看内核数据。

2024-04-24 11:54:34 514

原创 Linux0.11 源码中的内存分页机制

linux 源码学习,内存分页的机制。

2024-04-17 16:55:05 411 2

原创 Windbg查看函数调用过程中的内存布局

我们在分析问题的时候经常会需要查看进程的栈和帧中的值,下面我们就用一个简单的例子来分析一下这个过程。

2024-04-07 15:08:14 554

原创 Windbg 分析内存异常问题

windbg 查看内存的异常,查找程序中的问题

2024-04-03 11:35:18 369

原创 PE 格式详解

介绍PE 文件的格式

2024-03-29 12:00:17 883

原创 Win10系统上面编译scrcpy源码

Win10系统上面编译scrcpy源码

2024-01-16 17:54:05 626 3

原创 C++ 中异常机制

5:如果throw 的发生并不在try 区段中,或是没有一个catch 吻合,name系统必选(a)析构所有active local objects (b)从堆栈中将当前的函数推离(c)进入程序堆栈的下一个函数中去,然后重复2~5.throw:在程序的某处发出一个exception,exception可以是默认的类型,也可以是user自定义的类型。C++的exception handling 有三个关键字组成:throw ,catch,try。try:一个区段,将可能引起exception的部分包含起来。

2024-01-05 11:36:42 779

原创 C++ 默认构造函数

我们在定义一个类的时候,编译器会帮助我们完成一些工作,其中一项就是生成默认的构造函数。先看一下下面的程序,能够将一个int 型的变量赋值给到一个class Animal,这种变换很多时候会引起不必要的错误。为了解决这个错误我们需要消除这种编译器的自动行为,让类型转换由程序员来控制,加上explicit关键字就可以消除这个错误。如果我们没有定义一个构造函数,这个时候会出现什么情况,从下面的图片可以看出构造函数没有做任何事情,连变量age 都没有初始化为0。

2023-12-26 18:13:14 826

原创 正确计算字符长度

在使用字符串的时候经常需要计算字符串的长度,使用不正确的字符串大小会导致缓冲区溢出。字符串使用的是字符数组来实现,所有我们需要区分几个重要的属性,大小(size),计数(count),长度(length)。char 类型的字符串,一个字符数组的大小等于char 数组的计数,长度是空字符前的字符数,值小于或等于大小减去一。看下面这段代码的错误,分配的内存没有考虑一个字符的宽度sizeof(wchar_t)当宽字符串被认为是窄字符串或多字节字符串时,可能会不正确的计算字符串大小。在空终结符之前的字符数。

2023-12-07 14:20:59 459

原创 常见的字符串操作错误

我们编写程序的时候经常要对字符串进行操作,在使用的时候经常会发生一些错误,下面我们就来总结一下这些错误。最常见的错误有四种,分别是无界字符串复制(unbounded string copy),差一错误(off-by-one error),空字符结尾错误(null termination error)以及字符串截断(string truncation)。当目标字符数组的长度小于一个字符串的时候就会发生字符串截断,字符串截断虽然不会发生溢出,但是后丢失数据,同样对程序来说也是一个隐藏的错误。

2023-12-06 15:22:59 427 1

原创 LIN LDF 解析规则

LIN 总线的ldf 文件解析规则

2023-11-28 18:33:18 1764

原创 CAN DBC 解析规则

can总线dbc解析规则的介绍

2023-11-28 17:06:45 1194

原创 常见的C++内存管理错误

C++ 程序的动态内存管理非常复杂,容易出现缺陷。常见的与内存管理相关的编程缺陷,包括未能正确处理分配失败,解引用空指针,写入已经释放的内存,多次释放相同的内存,不当配对的内存管理函数,未区分标量和数组,以及分配函数使用不当。

2023-11-24 20:23:36 952 1

原创 QT 中通过QProcess 发送adb 指令

qt 中通过QProcess 来调用adb 指令

2023-10-23 19:22:33 226

原创 QT 自定义控件实现自由伸缩

qt 自定义控件实现伸缩

2023-10-13 18:53:54 402

原创 QT 自定义控件保存到xml 文件中

前面自己定义了一些控件可以实现一些显示功能,现在需要把控件保存成xml 文件,然后打开文件可以把控件显示在页面上。功能比较简单在原来的页面class 中增加两个函数来实现这个功能。

2023-09-20 16:59:58 226 1

原创 QT自定义控件实现一个车速表

使用qt 绘制一个车速表,实现和属性框的动态交互。

2023-09-19 16:30:02 198

原创 QT 自定义控件和qtpropertybrowser 之间互动

QT 自定义控件和qtpropertybrowser 之间的联动

2023-09-15 14:40:43 214

原创 QT 中使用QtPropertyBrowser 显示属性值

qt 中使用QtPropertyBrowser

2023-09-12 16:50:02 255 2

原创 QT 实现通过拖拽动态生成子窗口

qt 实现拖拽效果

2023-09-08 11:18:18 301 1

原创 QT 工程中开发插件dll

接口类是一种纯虚函数类,它只包含纯虚函数,没有数据成员和实现函数。接口类的作用是定义一组规范,由派生类实现具体的功能。Q_DECLARE_INTERFACE 需要两个参数,第一个参数是接口的名称,第二个参数是接口的 IID。Q_DECLARE_INTERFACE 是 Qt 宏,用于声明一个接口类。开发了一个测试SOA的工具,现在想在工具的框架中增加 插件的功能。定义一个加载dll 的函数:bool loadPlugin();主工程中调用 dll 中的接口 name。新建了一个pluginTest 的工程。

2023-08-30 14:08:16 110 1

原创 Peach Tool 源码的编译

Peach 源码下载地址:https://gitlab.com/peachtech/peach-fuzzer-communityPeach 工具下载地址:https://sourceforge.net/projects/peachfuzz/ The package repository hosts the packages you need, add it with the following commands. Note: the packages should work on newer Ubunt

2023-08-08 16:25:23 139 1

原创 Windows 系统下使用VSomeip dll 开发应用程序

使用VSomeip dll 自己开发 Windows 应用程序和ecu 进行通信

2023-08-07 18:12:45 389

原创 QT COM 接口给到Python 使用

用QT 开发的exe执行成可以手动来测试someip ,现在想让工具可以提供外部接口给到Python 来使用,研究了一下实现方式,可以在exe的源码中增加com 接口来给到外部程序使用。当我们以server 运行的时候不希望UI 弹出来,我们可以在main中做一个设置。这样我们python 调用com 接口的时候就不会有UI出现。pro 文件中添加需要的module axserver。我们在UI 中添加几个控件来测试一下TAM 中的函数。添加一个类作为导出类,提供接口给到外部程序使用。

2023-04-19 12:51:15 205

原创 Windbg 添加断点调试程序

windbg 设置断点,以及相关的指令

2023-04-17 20:01:54 618

原创 Windbg 分析QT 程序中的Crash问题

下面是用windbg 分析问题的过程,首先我们需要确认自己的dump 和pdb 文件要对应上,否则错误的pdb会把我们带到错误的地方。开发的工具中添加了google 的breakpad 来抓取dump 文件,在出现问题的时候可以用来分析crash发生的原因。找到和自己的QT开发工具对应的版本的pdb 文件然后下载下来,我的QT 是5.14.2,在下面的路径上下载相关的文件。首先我们需要加载符号文件在windbg的菜单File->Symbol file path 中来设置符号文件路径。通常我们会使用指令:!

2023-04-13 11:31:50 435 1

原创 QT 中使用Npcap 来抓取网卡数据

最近在开发someip 的测试工具,手动测试的时候通过wireshark 来抓取网络中的数据,在工具的自动化测试中希望可以保存网卡中的数据来进行分析使用。我在自己的工程文件下有一个include /npcap 文件夹,把lib和include copy到里面 然后在QT的 .pro。然后我们可以按照example 中的例子来使用相关的API 函数实现自己的功能。以上就是使用npcap的一个简单过程,一些其它的用法可以参考sdk 里面的范例。文件中添加头文件和lib的路径。首先需要设置dll 的路径。

2023-04-11 12:07:33 1331 1

原创 QT 使用Google Breakpad 捕获dump

我们用QT 开发windows 应用程序,有的时候程序发生了crash ,光靠log 有的时候无法找到问题,很多时候应用程序给到其他的人使用,尤其是一些偶发的问题很难复现,这个时候我们就需要一些其他的方式来解决问题。使用比较简单,引用头文件,然后定义一个ExceptionHandler,当工具发生crash 的时候会在指定的文件夹中生成一个dump file,我们可以用windbg 来分析dump 文件找到crash的原因。breakpad 编译lib的时候需要注意选择MD,保持QT 和lib之间的一致。

2022-12-15 11:24:53 429

原创 QT 实现百万级的数据显示内存消耗几十兆

用QT 开发了一个上位机的工具用来解析串口的数据,数据量比较大 ,如果QT tableview 控件完全显示,内存消耗较大,所以解析结果先建立sql 数据索引,然后通过垂直滚动条的变化动态地获取数据,每次从数据库中提取50条,测试下来内存消耗较小,可以实现百万或者千万级的数据显示。1:先将垂直滚动条的valuechanged signal 和自定义的slot 绑定。2:slot 传入垂直滚动条的位置值value 在线程中搜索数据。3:线程中取出数据返回到UI中显示。4:UI中显示数据库中显示的数据。

2022-10-30 22:46:11 1700

VSomeip dll 和头文件

windows 下VSomeip dll 64位系统下使用

2023-09-14

qt tableview 显示千万级数据

QT使用tableview 展示千万级别的数据,速度快,内存消耗小

2023-07-27

tableview 大量数据内存消耗小

自定义 model 减小tableview 内存消耗

2023-04-26

google break pad dll 和头文件

google break pad dll 和头文件,使用方法可以参考我写的QT中使用介绍 https://editor.csdn.net/md/?articleId=128326806

2023-04-13

kvaser pcan 使用指南

kvaser pcan 使用指南

2023-04-13

ARM 64位 工具:iozone ,iperf3,memtester,nmon,stress-ng

几个性能测试和监控的工具,ARM 64位的机器上可以运行。iozone ,iperf3,memtester,nmon,stress-ng,在nvidia 的开发板上面实际测试过。

2022-09-22

com技术.pdf

com技术,深入的讲解com技术的用法。

2014-07-02

空空如也

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

TA关注的人

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