嵌入式系统调制
前言
OpenCV是Intel开元计算机视觉库,它有一系列开源的C函数和少量C++类构成,实现了图像处理和计算机视觉很多通用的算法。
OpenCV特点:
1.拥有包括300多个C函数的跨平台的中、高层API;
2.跨平台:Windows/Linux;
3.Free:无论是对于商业还是非商业应用;
4.速度快;
5.使用方便。
一、代码的GDB调试
GDB : GNU Debugger,是GNU工程为GNU操作系统开发的调试器,但它的使用不局限于GNU操作系统, GDB可以运行在UNIX、Linux甚至Microsoft Windows。
使用GDB我们可以:
– 设置断点使程序停住
– 监视或修改程序中变量的值
– 跟踪代码执行过程
1. GDB的使用
• 程序要能被调试,必须包含调试信息
• 编译程序时,通过gcc的-g选项为程序添加调试信息,例如:
gcc –g –o helloworld helloworld.c
- GDB的启动
打开终端输入gdb
启动完成
2. GDB的调试
① GDB编译
下面的代码实现对一个整型数的反转功能,比如输入123,则输出321
#include <stdio.h>
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%d\n", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
}
使用GDB编译以上代码
gcc -g -o Revert Revert.c
编译成功
发现已生成可执行文件Revert
使用GDB运行Revert文件
执行成功
② 段错误调试
但是在有些情况下会出现段错误
示例代码:
#include<stdio.h>
#include<string.h>
#define BUFSIZE 256
static char acBuf[BUFSIZE];
static char *pStr;
int main(void)
{
printf("请输入一个字符");
gets(pStr);
printf("\n你的字符是:%s\n",pStr);
}
编译后发现出现段错误
段错误调试可以参考linux环境下使用gbd调试段错误
3. GDB的常用命令
① list命令
在gdb中运行list命令(缩写l)可以列出代码
创建一段示例代码
#include<stdio.h>
int add(int a, int b)
{
return a + b;
}
int main()
{
int sum[10] =
{