
二进制
文章平均质量分 94
二进制
王YANLONG
技术总结,自我沉淀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
stack smashing detected
本文先介绍stack smashing detected问题现象,然后介绍问题产生的原因,最后介绍问题定位思路。原创 2025-03-22 12:05:24 · 1028 阅读 · 0 评论 -
一次使用LD_DEBUG定位问题的经历
在实际工作中,当遇到段错误,我们会很容易的想到这是非法访问了内存导致的,比如访问了已经释放的内存,访问数据越界,尝试写没有写权限的内存等。使用gdb进行调试,查看出异常的调用栈,往往可以定位到问题原因。但是有些时候,段错误问题的定位也没这么简单。本人在工作中就遇到了一个段错误的问题,问题原因不是那么直观,出问题的代码非常简单,直接按照常规的分析方法,很难分析出原因。往内存越界、内存没有权限这个方向分析无法定位问题。可执行文件直接依赖两个动态库,两个动态库有同名符号,这样编译可执行文件的时候无法编译通过。原创 2024-10-19 17:06:11 · 1337 阅读 · 0 评论 -
error while loading shared libraries 找不到动态库问题如何解决
在使用 c 或 c++ 开发应用时,在启动程序时,有时会遇到这个错误,找不到动态库。这个时候,我们使用 ldd 来查看,发现可执行文件依赖的动态库显示为 not found。原创 2024-06-10 11:04:58 · 945 阅读 · 0 评论 -
linux 运行的程序,把可执行文件或者动态库删除,程序会崩溃吗
当程序运行的时候,如果把可执行文件删除或者把这个程序依赖的动态库删除,程序会继续正常运行还是会崩溃?当程序运行的时候,如果将可执行文件覆盖或者将程序依赖的动态库覆盖,程序会继续正常运行还是会崩溃?这两个问题中有两个变量,一个是操作的对象,可执行文件还是依赖库;一个是操作的类型,把文件删除还是把文件覆盖。本文通过实验的方式来记录这 4 中情况。先列出结论,如下:操作对象删除覆盖: cp new old覆盖: mv new old可执行文件程序继续运行,不崩溃操作失败,提示文件忙。原创 2024-02-19 14:06:07 · 1286 阅读 · 0 评论