跟踪调试,驱动程序调用详细,应用程序如何使用驱动

跟踪调试,驱动程序调用详细,应用程序如何使用驱动,第1张

一般的驱动程序是不允许应用程序调用的,只有当驱动程序留出这种供外界访问的接口才行,这种接口一般包括read,write,open,ioctl等接口,如果驱动中预留出了这些接口,就可以在应用程序中调用,比如fd=open(设备,参数)或者fd=ioctl(设备,参数),这样就会调用到这个设备驱动中的open或者ioctl函数。所以一般如果想再应用程序中调试某个驱动程序,常见的方法就是自己建立一个驱动模块,这个模块中预留出对外接口,比如ioctl。然后在你新建的这个驱动模块中完成ioctl函

简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。

源码debug。类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出现的位置,然后再修改源码。

例如:

#include <stdio.h>

void f() { }

int main(){

#ifdef _DEBUG

printf("start main function!\n")

#endif

void f()

#ifdef _DEBUG

printf("leave main function !\n")

#endif

return 0

}</ol>2.可执行文件调试,windows常用的就是vs/vc自带的调试,另外一个就是微软自家开发的调试器windbg。Linux以gdb为常用。

下面以dev-C++为例:1)在“工具”-》编译选项-》"编译时加入以下命令"下面的编辑框里加上: -g32)在下面的"在连接器命令行加入以下命令" 下的编辑框上加上: -g33)转到程序页,把gcc行修改为:gcc.exe -D__DEBUG__,4)把g++行修改为: g++.exe -D__DEBUG__ ,5)点击确定,重新编译,就能调试了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7949576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存