项目采用CMake编译,需要先搭建CMake windows编译环境
环境搭建:
	1、安装 msys64
	2、打开msys64命令行窗口(开始菜单->MSYS2->MSYS2 MINGW64)
	3、在命令msys64命令行窗口执行以下更新库、安装cmake
		 pacman -Syu //更新库
		 pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake  //安装cmake与gcc
						
编译(需要在msys64命令行窗口中)并生成exe文件:
    1、在msys64命令行中,cd到项目build目录
    2、rm -rf *   //清空build目录下面内容
    3、生成普通编译器:
	   cmake .. -G "MinGW Makefiles" -DCMAKE_C_COMPILER="C:/msys64/mingw64/bin/gcc.exe"  -DCMAKE_CXX_COMPILER="C:/msys64/mingw64/bin/g++.exe" 
	   生成Code::Blocks工程文件(可以图形化调试):
	   cmake -G "CodeBlocks - MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER="C:/msys64/mingw64/bin/gcc.exe" -DCMAKE_CXX_COMPILER="C:/msys64/mingw64/bin/g++.exe" ..
    4、mingw32-make   //生成exe文件	

gdb命令行调试:
    需要在CMakeLists.txt中增加:set(CMAKE_BUILD_TYPE "Debug")
    1、启动:gdb --args ./wanson_license_tool.exe -p COM5 -u 0F9763C6DACF9991
	2、设置断点:
	   在指定行号处设置断点,如:break bk_main.c:336
	   在指定函数处设置断点,如:break main
	3、开始运行(如果有断点会停止在断点):r  //run
	4、 查看变量: p bkThread  //print bkThread变量
	   查看堆栈: bt  //backtrace
	   单步执行(进函数):s  //step 
       单步执行(不进函数):n  //next 
	   继续执行到下一个断点:c //continue 如果不想单步执行
	5、退出gdb:q //quit

   gdb查看变量:
     info variables:查看所有全局/静态变量
	 info variables g_:查看全局变量
	 info variables int:查看全局int变量
	 info args:查看当前函数参数
	 info locals:查看局部变量
	 info frame: 查看当前栈帧中的所有变量(包括参数和局部变量)
	 bt full:查看所有栈帧的变量(多函数调用时)

Code::Blocks图形化界面调试方法:
	1、在codeBlock中导入build目录下面的MyCMakeProject.cbp文件(File->Open...->选择build目录下面的cbp文件)
	如果没有cbp文件,需要先执行:cmake -G "CodeBlocks - MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER="C:/msys64/mingw64/bin/gcc.exe" ..
	2、CodeBlock设置:
	  设置gdb路径:
	     Settings菜单->Debugger->GDB/CDB debgger->Default 
 	     在ExecutablePath中输入完整的gdb路径,如:C:\msys64\mingw64\bin\gdb.exe
	  设置Exe路径:
	     右击项目->选择Project->Project targets(默认为all)->Output filename:输入exe名称
		 右击项目->选择Project->Project targets(默认为all)->Type,输入exe程序名称
	  设置命令行启动参数:
	     Project菜单->Set Program's arguments...->Program arguments中输入启动参数,如:-c arg1 -p arg2 

	3、断点处跟踪变量:
	   查看局部变量:Debug菜单->Debuging windows->Watches(勾选上就会显示一个Watches窗口)
	   跟踪全局变变量:打开Watches窗口,在Watches窗口空白行增加冒号+变量,如要跟踪全局变量device,就输入 ::device

更多推荐