引言
实际开发过程中,会遇到千奇百怪的问题。有的是因为库与系统不匹配,有时是因为标准库存在不兼容问题,当然也有内存申请释放访问的问题。
大部分奇怪的问题并不是必现,有的跟机器相关,偶的甚至跟人品有关系。总之,我们经常要与千奇百怪的问题打交道。今天就说说产品落地中遇到的一个关于字符串赋值导致crash的问题。
问题来源
在android系统中,测试一个C++动态库时,出现segment fault或者Invalid Address free
等问题,最终定位crash的位置时在一个字符串赋值的位置。例如:
class O {
public:
void allfunction() = 0;
};
class AO : public O {
public:
void otherFunc() = 0;
private:
void setName(const std::string& name){
LOG("Before setName");
this->_name

本文探讨了在Android系统中,C++动态库因字符串赋值引发的crash问题。问题源于不同编译环境和配置导致的C++标准库冲突。解决方案是明确指定链接的C++库为gnustl_shared,确保所有动态库链接同一标准库。
最低0.47元/天 解锁文章
641

被折叠的 条评论
为什么被折叠?



