valgrind从这样的代码报告未初始化的内存错误:
unsigned char buf[100]; struct driver_command cmd; cmd.len = sizeof(buf); cmd.buf = buf; ioctl(my_driver_fd,READ,&cmd); for(i = 0; i < sizeof(buf); i++) { foo(buf[i]); /* <<--- uninit use error from valgrind */ }
如果我在驱动程序调用之前memset()buf错误消失。
valgrind可以检测linux驱动程序是否正确写入缓冲区? (我看着驱动程序代码,似乎是正确的,但也许我错过了一些东西。)
还是只是通过驱动程序调用,并无法知道缓冲区已经写入内核?
编写我自己的init可执行文件
初始化指向结构的指针
如何区分windows驱动程序与DLL
调用者应该初始化“out”参数吗?
windows中的Python h2o:无法初始化(TypeError:“nonetype”types的参数不可迭代)
谢谢。
有序的线程安全类的静态初始化
互斥体在boost regex构造函数中声明
windows错误:访问被拒绝H2o深度学习框架使用Python进行初始化
初始化脚本是否需要守护进程?
为init运行python文件的linux内核
Valgrind显然不能追踪执行到内核中,但是它确实知道大多数系统调用的可见语义。 但是, ioctl太难以预测了。 如果你已经编写了你的驱动程序,以便这是一个read电话,它会得到它的权利。 无论如何,这是更好的做法。
总结以上是内存溢出为你收集整理的valgrind是否通过驱动程序跟踪内存初始化?全部内容,希望文章能够帮你解决valgrind是否通过驱动程序跟踪内存初始化?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)