自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (34)
  • 收藏
  • 关注

转载 win11 家庭版远程桌面 -- RDPWrapper

远程桌面 家庭版 win10 win11

2022-11-19 15:23:55 6133

转载 VxWorks操作系统shell命令与调试方法总结

主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤、思路。

2022-10-26 18:09:55 6982 2

转载 图解TCP、UDP,流量控制,拥塞控制。

TCP、UDP,流量控制,拥塞控制

2022-10-25 10:11:12 635

转载 u-boot使用实验(烧录和命令)

u-boot

2022-10-22 17:23:22 3094 1

转载 VxWorks 启动程序的四种方法

vxworks 自动加载

2022-10-19 15:40:54 6834 1

原创 WIN10如何提取驱动

驱动 win10

2022-09-05 09:11:33 14450

转载 SVN 忽略不需要提交的文件

svn ignore file 忽略文件提交

2022-08-25 11:23:05 13550 1

转载 VxWorks下Telnet客户端的C语言实现代码

Telnet 协议是 TCP/IP 协议族中应用最广泛的协议。它允许用户(Telnet 客户端)通过一个协商过程来与一个远程设备进行通信。Telnet 协议是基于网络虚拟终端 NVT(Network Virtual Termina1)的实现,NVT 是虚拟设备,连接双方(客户机和服务器)都必须把它们的物理终端和 NVT 进行相互转换。

2022-08-21 17:04:30 822

转载 VxWorks 调试

VxWorks

2022-06-09 15:44:53 2527

转载 objdump命令的使用

linux objdump

2022-06-09 10:04:08 7601 1

转载 GCC部分编译选项解析

GCC

2022-06-08 09:52:07 1049

转载 ARM栈帧与编译选项

ARM 编译选项 状态寄存器

2022-06-08 09:44:28 553

原创 boot.bin 流程

U-BOOT流程: 1.内核由U-Boot引导。 2.U-Boot由FSBL引导、启动。 3.FSBL由ZYNQ片内BootROM引导、启动。启动设置: MIO3-5 引脚设置启动方式 SD、qpsi、nor flash、nand flash等。QSPI 启动流程: 1. 初始化MIO引脚 2. 初始化QSPI设备, 驱动QSPI设备 3. 对QSPI读写测试 4. 从QSPI中读取BOOT.bi...

2022-05-22 10:26:55 876

转载 Linux c++ 性能分析工具gprof

程序分析工具不同于调试器,它只产生程序运行时某些函数的调用次数、执行时间等等宏观信息,而不是每条语句执行时的详细信息。Gprof是Linux下一个强有力的程序分析工具。对于C、Pascal或者Fortran77语言的程序,它能够以“日志”的形式记录程序运行时的统计信息:程序运行中各个函数消耗的时间和函数调用关系,以及每个函数被调用的次数等等。从而可以帮助程序员找出众多函数中耗时最多的函数,也可以帮助程序员分析程序的运行流程。相信这些功能对于分析开源代码的程序员来说,有着相当大的诱惑力。用gprof分..

2022-05-20 17:56:08 887

转载 不要在linux上启用net.ipv4.tcp_tw_recycle参数

tcp

2022-05-16 13:41:03 1017

转载 RDTSC 获取时间

时间戳rdts

2022-05-16 10:39:18 1456

转载 使用blktrace统计磁盘块I/O访问频率

如果我们想知道,在一段时间内,那一个磁盘块被读写的频率最高,怎么办? 我问这个问题是看到taobao kernel wiki上面有这么一段话,看了我十分心痒:通过对blktrace的输出结果进行分析,我们可以对特定时间段内发生的读、写操作的磁盘块进行I/O频次统计。结合通过将磁盘块I/O频度统计和page cache命中率统计相结合,就可以比较有效的判断服务器节点的cache使用效率。通过这套工具,CDN系统修正了一个固态硬盘上cache管理的缺陷,显著提高了I/O性能(详细信息) ...

2022-05-15 10:00:34 514

转载 __attribute__((constructor))用法解析

__attribute__

2022-05-14 13:07:32 1664

转载 实现动态库捕获异常信号并保存函数堆栈信息

signaltraceback

2022-05-14 10:27:11 965

转载 linux下强大的ELF文件分析工具 -- readelf

From:ELF格式文件符号表全解析及readelf命令使用方法_yasi_xi的博客-CSDN博客readelf命令:http://man.linuxde.net/readelfELF文件格式解析:ELF文件格式解析 - 综合编程类其他综合 - 红黑联盟ELF文件格式解析:ELF文件格式解析_yunshouhu的博客-CSDN博客可执行文件(ELF)格式的理解------系列文章:可执行文件(ELF)格式的理解 - 深海的小鱼儿 - 博客园Linux内核分析——ELF文件格式分析:Li

2022-05-08 17:42:53 4222

转载 ELF文件格式

ELF文件格式前言 ELF文件的结构 ELF文件中各个字段的用途 ELF头(ELF Header) 段表(Section Header table) 符号表(Symbol Table)ELF文件类型 说明 实例 Relocatable File 可重定位文件 未链接之前的ELF文件,可用于链接可执行文件或静态链接库 Linux下的".o"文件,Windows下".obj"文件 Executable File 可执行文件 最终的可执行程序 如Li

2022-05-08 17:15:17 612

转载 linux下强大的ELF文件分析工具 -- nm

什么是nmnm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件、库文件、可执行文件中的符号表,返回二进制文件中各段的信息。目标文件、库文件、可执行文件首先,提到这三种文件,我们不得不提的就是gcc的编译流程:预编译,编译,汇编,链接。 目标文件:常说的目标文件是我们的程序文件(.c/.cpp,.h)经过预编译,编译,汇编过程生成的二进制文件,不经过链接过程,编译生成指令为: gcc(g++) -c file.c(file.cpp) 将生成对应的file.o文件,.

2022-05-08 17:06:57 1054

原创 linux下Segmentation Fault生成coredump文件进行gdb调试

1、在linux下运行程序出现段错误,如果程序不是很大还比较好找,但是如果程序很大,会比较难以定位;在linux下可以支持生成coredump文件,使用gdb来解析Segmentation Fault时发生了什么,可以比较方便的查看程序崩溃的位置;2、一般linux系统都是默认关闭coredump文件生成,需要执行命令打开;实际上就是配置生成coredump的文件大小,系统默认为0,即不产生coredump文件;ulimit -c unlimited3、编译源代码时makefile编译选项添..

2022-05-08 14:39:33 859 1

转载 arm上backtrace的分析与实现原理

前言我们往往在进行嵌入式开发的过程中,需要借助一些调试手段进行相关调试,比如在调试stm32的时候,可以在keil中利用jtag或者stlink进行硬件上的仿真与调试,一些高频的arm芯片也会使用jtag之类的硬件调试工具,还有trace32等等,但是这些往往需要借助一些硬件工具进行分析。当然,我们可以进行软件层面的分析。定位问题的方式通常有以下三点:1.通过串口打印信息进行业务逻辑的梳理,结合代码设计进行分析2.在程序死机的时候,输出的函数调用栈关系进行分析,结合符号文件进行跟踪定位3.在

2022-05-07 15:57:06 1409

转载 linux下定位崩溃,backtrace + addr2line + maps

一、导读Backtrace中,一般都只有一些地址。但是利用addr2line这个工具,就可以找到对应的代码行。前提条件是可执行程序或者动态链接库编译的时候带-g选项。具体来说,分两种情况: 如果关注的一行backtrace位于一个可执行文件中,那么直接addr2line -e <executable> <address> 如果关注的backtrace位于一个动态链接库中,那么麻烦一些,因为动态链接库的基地址不是固定的。这个时候,首先要把进程的memory ma

2022-05-07 15:34:54 2664

原创 LINUX C/C++捕获段错误,打印出错的具体位置(精确到哪一行) ​ --Xilinx ARM版本

arm signalsegment failarm-xilinx-linux-gnueabi-gcc

2022-05-06 18:09:13 1749

转载 linux SIGSEGV 信号捕捉,保证发生段错误后程序不崩溃

在linux中编程的时候 有时候 try catch 可能满足不了我们的需求。因为碰到类似数组越界 ,非法内存访问之类的 ,这样的错误无法捕获。下面我们介绍一种使用捕获信号实现的异常 用来保证诸如段错误之类的错误发生时程序不会崩溃,而是跳过代码继续执行。首先我们来看看发生段错误之后系统的处理。发生段错误后系统会抛出 SIGSEGV 信号 ,之后 调用默认的信号处理函数 ,产生core文件 ,然后关闭程序 。那有没有一种办法可以保证程序不会死掉呢,当然是有的 。首先我们想到的是 截获改信号,调用自己的

2022-05-06 16:02:08 1355

转载 segmentation fault 定位

我们在Linux下进行程序开发,如果程序代码不严谨,会经常遇到segmentation fault1报错,这种报错的结果就是程序会直接挂掉,很难在程序里一下子定位到问题代码。原因segmentation fault 就是经常说的内存泄露/溢出: 当一个进程执行一个无效的内存引用,或发生断错误时,会触发 SIGSEGV信号,内核默认的动作就是 终止该进程。这个最常见的就是,比如我们使用了 非法指针:1 #include <stdio.h>2 #include <s..

2022-05-06 15:49:15 1718

转载 Linux手册翻译——sigaction(2)

sigaction, rt_sigaction - 检查和修改信号的Action(这里的Action语义同signal(7)中的disposition)#include <signal.h> int sigaction(int signum, const struct sigaction *restrict act, struct sigaction *restrict oldact);sigaction() 系统调用

2022-05-06 14:13:01 1230

原创 linux手册翻译——ucontext(3)

2021.06.22 13:42:47字数 213阅读 240ucontext—— 用户线程上下文Standard C Library (libc, -lc)#include <ucontext.h> /* Userlevel context. */typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; sta...

2022-05-06 14:08:06 284

转载 通过coredump - 用backtrace和addr2line 查找异常函数栈

为什么不想要coredump?也许你会说,coredump很好啊,程序异常崩溃时候,coredump会提供程序的内存、堆栈、寄存器、函数栈等各种信息,是定位BUG的利器啊。的确,我也同意,coredump有诸多好处。但是有一种场景让我不得不放弃它 -如果程序运行时占用大量内存,异常崩溃时生成的coredump文件可能会非常非常大。比如,某个程序运行时占用20GB内存,当它异常时可能会生成40GB大小的core文件,而生成文件的写盘过程非常缓慢,这会严重影响系统的整体运行情况。可以假想,这个程序如果.

2022-05-06 13:41:25 1248

转载 linux ucontext族函数的原理及使用

ucontext函数族这里的context族是偏向底层的,其实底层就是通过汇编来实现的,但是我们使用的时候就和平常使用变量和函数一样使用就行,因为大佬们已经将它们封装成C库里了的我们先来看看寄存器寄存器:寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果我们常用的寄存器是X86-64中的其中16个64位的寄存器,它们分别是%rax, %rbx, %rcx, %rdx, %esi, %edi, %rbp, %rsp%r8, %r9, %r10, %r11, %

2022-05-06 11:31:34 1729

转载 linux中sigaction函数详解

一、函数原型:sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);signum参数指出要捕获的信号类型,act参数指定新的信号处理方式,oldact参数输出先前信号的处理方式(如果不为NULL的话)。二、 struct sigaction结构体介绍struct ...

2022-05-05 10:49:26 435

转载 关于Segmentation fault (core dumped)几个简单问题

有的程序可以通过编译,但在运行时会出现Segment fault(段错误)。这通常都是指针错误引起的。但这不像编译错误一样会提示到文件一行,而是没有任何信息。一种办法是用gdb的step, 一步一步寻找。但要step一个上万行的代码让人难以想象。 我们还有更好的办法,这就是core file。如果想让系统在信号中断造成的错误时产生core文件, 我们需要在shell中按如下设置:#设置core大小为无限ulimit -c unlimited#设置文件大小为无限ulimi...

2022-05-05 10:49:10 1075

转载 linux SIGSEGV 信号捕捉,保证发生段错误后程序不崩溃

在linux中编程的时候 有时候 try catch 可能满足不了我们的需求。因为碰到类似数组越界 ,非法内存访问之类的 ,这样的错误无法捕获。下面我们介绍一种使用捕获信号实现的异常 用来保证诸如段错误之类的错误发生时程序不会崩溃,而是跳过代码继续执行。首先我们来看看发生段错误之后系统的处理。发生段错误后系统会抛出 SIGSEGV 信号 ,之后 调用默认的信号处理函数 ,产生core文件 ,然后关闭程序 。那有没有一种办法可以保证程序不会死掉呢,当然是...

2022-05-05 10:17:46 2639

原创 二进制文件比较工具

二进制文件比较编辑工具(Fairdell HexCmp2) 绿色中文版http://www.skycn.com/soft/appid/41125.html相当好用 !!!!

2022-05-04 15:06:25 7551 1

原创 TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞

TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞  这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”)。闲话少说,我们先看一下技术背景:Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT设备允许处于同一NAT后的多台主机共享一个公网..

2022-05-04 15:03:12 639

转载 Linux debug : addr2line追踪出错地址

调试zSeries上的Linux应用程序类似于调试其他体系结构上的Linux应用程序。对于有经验的Linux开发人员,最大的挑战是理解新的系统体系结构。对于刚接触Linux的大型机开发人员,掌握新的调试工具似乎是一项令人畏惧的任务。不要害怕。本文将提供一些有用的提示来帮助您入门。 学问来自实践,但是对于调试工具,在没有出现问题而迫使您去修复它们之前,“实践”是不会发生的。考虑到这点,下面将提供让您入门的“速成”指南。 User Debug 日志记录 调试一个崩溃的程序的第一步...

2022-05-04 14:47:56 3872

原创 Linux系统下程序异常如何优雅的退出

signal

2022-05-04 14:44:07 2654

转载 ​ LINUX C/C++捕获段错误,打印出错的具体位置(精确到哪一行) ​

segment fail

2022-05-04 14:29:35 1370

高质量C++编程.doc

2001-7-24出版,涉及C++基本概念。大部分公司的面试题都是参考这篇文章的。

2008-09-12

USB磁盘识别 VS2008

usb 磁盘 都有唯一的VID 和 PID ,使用usb盘符得到对应的序列号 然后在注册表中找到对应的项来判断该设备是否是指定设备。其他usb设备可参考这种方法来判断设备类型 介绍了如何注册USB消息, 来判断U盘的插入和拔出 备注: 注册表操作时忘记关闭句柄了 应该加上RegCloseKey(hKEY);

2011-06-14

vc 编程访问网络共享文件夹

vc 编程访问网络共享文件夹 vc6.0 源码

2010-06-25

Opengl 4.2 资源

opengl32.lib Glaux.lib glu32.lib ...

2011-11-21

ListBox 控件(宽度自动扩展).rar

listbox 根据输入自动产生横向滚动条

2010-09-08

ATL开发服务 vs2008 控制服务启动 停止 注销

ATL开发服务 vs2008 控制服务启动 停止 注销

2011-12-13

mxml2.0 源码

mxml 源码

2013-04-25

Visual Assist X

Visual Assist X 10.6.1819.0 vs2008 vs2010

2011-11-09

基于共享内存的hashMap及STL

基于共享内存的hashMap及STL VS2008

2013-04-09

签名控件 (鼠标钩子)

模仿QQ签名控件 鼠标移动到空间上可编辑

2010-09-08

win7+vc6 不能添加文件bug

。 需要下载文件FileTool,文件出处:http://support.microsoft.com/kb/241396/zh-cn, 在VC6.0中点击Tools-Customize 点击Add-Ins and Macro Files标签 6. 点击Browse,定位刚才生成的dll文件,点击确定,然后点击OK保存设置 7. 此时VC中会出现一个上面只有两个图标的工具栏,点击其右上角的“X”按钮将其关闭,然后关闭VC6.0并重新启动程序 8. 还是在VC6.0中点击Tools-Customize(中文版本:工具——定制) 9. 在Customize对话框中点击Keboard标签(中文版本:定制对话框——键盘) 10. 从Category的下拉菜单框中选择File(中文版本:类别选项——文件) 11.在Commands窗口中选择FileOpen(中文版本:命令选项——FileOpen) 12.在Current keys窗口中选择CTRL+O条目,并点击Remove(中文版本:右边当前键[U]——选择Ctrol+o,点击移去) 13.从Category的下拉菜单框中选择Project(中文版本:类别——Project) 14.在Commands窗口中选择InsertFilesIntoProject,如果之前给它注册了快捷键,则按照上面所说步骤移除之,默认情况下它是没有快捷键的(中文版本:命令——InsertFilesIntoProject) 15.从Category的下拉菜单框中选择Add-Ins(中文版本:类别——Add—Ins) 16.这时Commands窗口中应该已经多出了AddFileToProject和OpenFile两个条目,可以给它们分配快捷键了,选择OpenFile条目,然后点击Press New Shortcut Key输入框,按下想设置的快捷键或快捷键组合(如打开文件默认的快捷键CTRL+O),点击Assign可以以同样的方法为其它的命令设置快捷键 但是请注意:最后,还应该在菜单栏内做相应的改动,移除无法使用的旧Open命令,换上新的: 1. 在VC6.0中点击Tools-Customize 2. 点击File菜单,并将弹出菜单中的Open命令拖拽至弹出菜单之外并释放(注意:别拖到其他的菜单中,个人建议:直接拖到定制窗口中,就可以释放啦。) 3. 点击Project菜单,并将弹出菜单中的Add To Project命令拖拽至弹出菜单之外并释放(注意:与上步骤一样) 4. 在Customize对话框中选择Commands标签 5. 在Category列表中选择Add-ins 6. 点击File菜单,将OpenFile命令(图标为字母O)拖动到之前Open命令所在位置(注意:若是你使用的是中文版本,在文件菜单中依然是Open字母,而不是原来的打开,既然功能可以实现,其他的没有必要追求了,有了就赶紧工作吧,不会影响工作的啦。) 点击Project菜单,将AddFileToProject命令(图标为字母A)拖动到之前Add To Projec命令所在位置(注意:与上步骤一样吼) 若是您也遇到类似的问题,直接按照以上步骤操作,绝对没问题吼 ,只不过在释放原来旧的菜单时,有点点难拖,但是上面给出了我的建议,想必应该没有问题,若有什么问题,可以及时与我交流,共同进步哈。

2013-03-26

完成端口 iocp

完成端口 iocp

2012-01-19

串口测试程序

串口测试程序

2012-02-06

完成端口 测试

完成端口测试

2012-01-19

glutdlls37

glutdlls37 Opengl 开发

2011-11-21

设计模式 及 代码

设计模式 设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式

2011-10-24

vc6 标签源码

vc6 标签源码

2013-03-26

串口调试助手 源代码

串口调试助手+源代码+注释+2个word文档教你一步一步写程序

2012-02-06

日志事件 解释文件制作

日志事件 解释文件制作 日志事件 解释文件制作

2012-02-06

C++ 通用MakeFile

本文提供了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile。 在 使用 Makefile 之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile。因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序快速建立一个可工作的 Makefile。

2020-12-05

glusterfs的那些事- all.pdf

文件系统

2024-06-03

VxWorks Device Driver.pdf

VxWorks 驱动开发

2024-06-03

Data Transmission Card Based on the PCIe Driver.pdf

基 于PCIE驱动程序的数据传输

2024-06-03

vxworks-device-driver-developers-guide-vol 驱动编程

vxworks_device_driver_developers_guide_vol

2024-06-03

Fairdell HexCmp

二进制比较工具

2023-03-17

海康 PTZ HTTP控制

海康摄像头 PTZ控制 通过HTTP协议控制 vc6 代码

2013-12-26

oracle11g odbc win32 安装包

oracle odbc 11g 安装包 解压后 在控制台执行 odbc_install.exe

2013-05-28

vc6 使用MSSOAP 连接web服务器 得到xml 信息

vc6 使用MSSOAP MSSOAP30.dll 连接web服务器 得到xml 信息

2013-12-13

Visual Leak Detector 2.2.3 免安装.rar

Visual Leak Detector 2.2.3 版 免安装 解压即可使用。 内有说明。 可在mangos-0.9.0中使用。 在VS2010中 需要在“common.h”中把包含“vld.h”的 "MemoryLeaks.h"放到“windows.h”后。

2014-09-03

secure crt 8.5

安装文件安装文件scrt和破解文件keygen.exe 替代putty。

2018-09-20

RTP打包H264 udp发送

参考nalDecoder, 在XP下VLC播放成功 win7中不能播放. 修改打包的一个bug. 个人认为 Ox67 0x68 应该和0x65的时间戳相同. 在高清视频中 Ox67 0x68 0x65 是一个包发过来的.

2014-04-03

ug585-Zynq-7000-TRM.pdf

板卡启动

2021-10-22

enumwindows 遍历窗口

enumwindows 遍历窗口 共三个工程 一个vc6 两个vs2008

2013-05-03

dos 模拟器.rar

win10 dos模拟工具、 debug 和 汇编编译 链接工具。

2019-09-30

JThread VS2010 工程

jthread 1.3.1 vs2010 下工程 编译通过。

2014-11-06

visual assist x 破解版

visual assist x 2093 支持vs2015. 内含破解文件。 visual assist破解版 亲测没有问题。

2018-10-25

CyPress 帮助文件

CyPress 帮助文件 CyPress 帮助文件 CyPress 帮助文件 CyPress 帮助文件

2017-12-13

C++ 日志文件

c++ 日志文件 debug测试 4万/秒 左右 和 log4 差不多, 功能简单。

2014-11-10

空空如也

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

TA关注的人

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