
代码调试
文章平均质量分 56
宇龍_
有些白嫖党连个赞都不点甚至直接抄走了说原创,新发布的都写到专栏里吧,哎。
私聊给群号,可进Q群咨询问题。
展开
-
Windows各版本符号表离线下载
Windows各版本符号表离线下载转载 2022-08-28 02:30:00 · 2972 阅读 · 0 评论 -
windbg分析进程卡死、CPU高占用
本文重点讲述的是通过windbg分析进程卡死、CPU占用过高的问题,在日常的开发过程中,,那么在这种情况下我们该如何找出程序是在哪个环节或函数处卡主的?本文正是为了解决此问题。原创 2022-07-31 13:50:21 · 2529 阅读 · 0 评论 -
visual studio下C/C++添加注释模板
visual studio下C/C++添加注释模板原创 2022-07-26 23:12:50 · 1354 阅读 · 0 评论 -
VS2017通过IP调试驱动(双机调试)
之前写了篇博客,是用vs2017通过串口调试虚拟机上的驱动,但串口调试没有网口调试方便,这里写一篇通过网口调试驱动的方法:1、关于如何安装WDK、如何编写驱动,网上有一大堆教程,而且我之间好像写过?总之在VS2017上编写配置驱动还是很简单方便的。2、...原创 2022-05-29 11:02:43 · 1232 阅读 · 1 评论 -
WinDbg分析dump文件
调试能力可以说是最重要,尤其对于C/C++程序员而言,更是如此!当我们从测试那里拿到dump文件后,需要将对应的二进制文件(exe、dll等放到和出了问题的那台电脑同样的路径下)1、用WinDbg打开dump文件2、设置符号路径(生成二进制文件时对应的PDB文件,版本要一致!多个二进制文件的pdb最好生在同一目录):3、设置源码路径(项目的solution路径,多个项目可以加到一个solution里面):4、执行命令: !analyze -v此时WinD.原创 2022-05-17 23:25:02 · 7673 阅读 · 1 评论 -
gdb远程调试
应用场景:A电脑为开发环境,B电脑为服务器,在A电脑上开发好程序后部署到服务器B上运行,结果出现了bug。我希望能在A电脑上能通过gdb调试B服务器上的程序(服务器上没有代码,无法调试,当然也可以选择拷贝源代码,但某些情况是不允许的)操作:1、在服务器B上安装gdbserver,安装命令yum install gdb-gdbserver2、服务器B上启动gdbserver执行命令:gdbserver + A_IP:1234(端口号) + 执行程序名字 + 执行程序参数,如g.原创 2021-09-18 16:32:58 · 2701 阅读 · 0 评论 -
Valgrind检查程序内存泄漏
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。这里主要讲一下内存泄漏检查test.cpp的代码如下:#include <stdlib.h>#include <string.h>#include <memory>void func1(){ int *p = new int(0);}int main(){ func1(); int *p = new int(1); return 0;原创 2021-09-01 20:45:53 · 3414 阅读 · 0 评论 -
CentOS下程序崩溃后生成coredump文件
将以下文件保存为.sh,执行脚本后即可在程序崩溃时,在其运行目录下生成coredump文件#!/bin/bash### Filename: coredumpshell.sh### Description: enable coredump and format the name of core file on centos system# enable coredump whith unlimited file-size for all usersecho -e "\n# enable co原创 2021-07-29 20:17:43 · 1281 阅读 · 0 评论 -
linux下静态库和动态库的开发与使用
静态库(.a文件)的开发通过test.h和test.cpp生成静态库libtest.a,其编译命令为//将代码编译成.o文件gcc -c *.cpp//由.a文件生成静态库ar rcs libtest.a *.o静态库的使用1、-I(include)指定编译时头文件搜索目录2、-L(link)指定链接时搜索lib文件的目录3、-l(lib)指定要链接的库,此时不需要指定前缀lib和后缀.a执行命令gcc -I ./include -L ./lib main.cp原创 2021-07-04 12:26:16 · 339 阅读 · 0 评论 -
samba更改端口后用windows访问
前言有时候我们需要在服务器上使用samba服务,然后在windows端访问共享目录。但是samba使用的是139和455端口,这两个端口由于勒索病毒之类的安全问题可能被运营商直接封了,所以没办法,只能使用更改端口,但是更改端口后Windows系统又如何访问呢?本文的目的就是为了解决这些问题。环境服务器端为centos 8,客户端为windows 10前提条件centos端已经安装并配置了samba服务(一般yum install samba,并配置好账号)问题解决流程原创 2021-07-03 15:46:59 · 18388 阅读 · 8 评论 -
yum命令轻松升级到高版本gcc的方法!简单粗暴!
背景:直接通过yum install gcc安装的版本4.8.5太老了,很多新的库的用不起,没办法,只有升级了。手动编译安装太过于麻烦,于是乎网上找到了这个方法。方法:sudo yum install centos-release-sclsudo yum install devtoolset-7-gcc*scl enable devtoolset-7 bashwhich gccgcc --version......原创 2020-10-29 16:01:34 · 12881 阅读 · 1 评论 -
Qt生成dump文件并调试
1、编译时生成pdb文件:在.pro文件中加两行配置QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFOQMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO然后重新编译,即可在exe文件的目录下生成.pdb文件。2、项目中增加崩溃时生成dump文件的代码#include <tchar.h>#include <Windows..原创 2020-09-21 13:47:52 · 2680 阅读 · 3 评论 -
链接jsoncpp静态库无法打开编译器生成的文件:“../../build/vs71/release/v100/MD_MBCS\json_value.
使用Debug版的静态库没有问题,但使用Release版的静态库编译就报错了,解决办法:修改生成静态库文件的工程的属性:路径为:菜单---项目--属性---配置属性---c/c++---输出文件---汇编程序输出:无列表......原创 2020-05-26 19:20:20 · 599 阅读 · 0 评论 -
VS2015下编译linux程序遇到的问题
即便在安装了VC_LINUX.exe后依然存在很多问题:1、库缺失unistd.h,io.h,process.h 等一系列头文件都缺失解决办法:将linux下的usr/include下的所有文件拷贝到本地库文件目录中(vc_linux.exe复制不完全)2、pthread相关函数无法使用解决办法:项目属性中增加命令(类似情况都增加命令)...原创 2020-04-08 21:34:50 · 598 阅读 · 0 评论 -
g++ exited with code 1, please see the Output Window - Build
第一次使用VS2015在windows上编译linux程序,按照网上的教程配置好后编译直接报错g++ exited with code 1, please see the Output Window - Build估计大部分人遇到这种情况和我一样,是linux下的g++不支持 c++11所导致;解决方法:1、暂时关闭项目中使用c++11项目右键属性-C/C++-语言,修改成下...原创 2020-04-07 23:00:39 · 2646 阅读 · 1 评论 -
MFC程序生成dmp文件
#include <dbghelp.h>int GenerateMiniDump(PEXCEPTION_POINTERS pExceptionPointers){ // 定义函数指针 typedef BOOL(WINAPI * MiniDumpWriteDumpT)( HANDLE, DWORD, HANDLE, MINIDUMP_TYPE, PMIN...原创 2020-03-12 20:03:33 · 1235 阅读 · 0 评论 -
VS2005中SetUnhandledExceptionFilter函数应用
很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Release版本下追踪Bug的目的。但是,到了VS2005(即VC8),Microsoft对CRT(C运行时库)的一些与安全相关的代码做了些改动,典型的,例如增加了对缓冲溢出的检查。新CRT版本在出现错误时强制把异常抛给默认的调试器(如果没有配置的话,默认是Dr.Watson),而不再通.........原创 2020-03-12 19:59:59 · 475 阅读 · 0 评论 -
中小型公司C++面试问题
中小型公司一般面试会倾向于问一些比较有工程性、实用性的问题一、C++有哪些存储区1、栈区(先进后出)由编译器自动分配释放,存放函数的参数值,局部变量值等,其操作方法类似数据结构中的栈。2、堆区这里的内存是由程序员自己管理的,例如:申请内存、释放内存malloc free new delete alloc destroy若程序员不释放,程序结束时可能由OS回收。3、静...原创 2020-02-20 14:14:50 · 656 阅读 · 0 评论 -
visual studio 下 C++生成dump文件
1 lib配置 项目-->属性-->配置属性-->链接器-->输入-->附加依赖项 增加dbghelp.lib2 头文件#include <imagehlp.h>#include <Windows.h>3 main函数在第一行调用window api:SetUnhandledExceptionFilter(UnhandledE...原创 2020-01-08 19:37:01 · 2182 阅读 · 0 评论 -
vs编译器内存查看和分析
首先打开vs编译器,创建好项目,并且将代码写进去,这里就不贴代码了,你可以随便的写个做个测试。 调试的时候做好相应的断点,然后点击开始调试。 程序调试之后会在你设置断点的地方暂停,然后选择调试->窗口->内存,就打开了内存数据查看的窗口了。 内存查看的窗口可以开启四个,在这里方便的进行对比。 在内存窗口的地址栏中输入你...转载 2019-04-10 09:19:45 · 3629 阅读 · 0 评论 -
GDB调试程序
gcc/g++编译器是我们写编译C/C++程序时离不开的编译工具,而gdb又是调试C/C++程序的利器,这一篇文章我们记录一下它们的惯常用法。gcc/g++常用编译选项 选项 作用 -c 生成可目标文件,但不进行链接 -o 指定生成文件的文件名 -g 在目标文件中添加调试信息,便于gdb调试或objdump反汇编 -Wall ...原创 2019-04-08 21:44:55 · 806 阅读 · 0 评论