C++
RyanLeiWang
主业:软件工程师/程序员/没有土地的码农; 业余:贫困linux黑客/android开源系统贡献者; 副业: 不入流经济学家/3流投资家
展开
-
Linux 下的 AddressSanitizer
AddressSanitizer 是一个性能非常好的 C/C++ 内存错误探测工具。它由编译器的插桩模块(目前,LLVM 通过)和替换了 malloc 函数的运行时库组成。这个工具可以探测如下这些类型的错误:对堆,栈和全局内存的访问越界(堆缓冲区溢出,栈缓冲区溢出,和全局缓冲区溢出) UAP(Use-after-free,悬挂指针的解引用,或者说野指针) Use-after-return(无效的栈上内存,运行时标记 ASAN_OPTIONS=detect_stack_use_after_return转载 2020-12-08 10:58:02 · 885 阅读 · 0 评论 -
显式调用dll文件中的函数居然crash了
windows系统下,调用dll文件里的函数,无非2种方法,一种就是直接包含头文件,编译连接dll文件对应的lib文件。另外一种,就是显示调用:在代码里load这个dll文件,声明函数指针,并绑定DLL文件里的某函数。背景显示调用在编程时,还是有很多使用场景的。比如说,需要同时调用2个厂家的SDK库函数,无奈的很,这2个SDK离大部分函数居然是同名的,传参数也相同,甚至API的作用都是一致的。大家估计想起了山寨,嘿嘿。动态得load不同的dll文件,调用API的过程都是相同的,在这个情况下使用显.原创 2020-05-14 18:16:13 · 556 阅读 · 0 评论