Page 1 of 1

esp8266的问题可以放在这里讨论吗?

Posted: Wed Mar 27, 2019 7:20 pm
by q515949148
esp8266貌似没有中文官方论坛?
最近发现8266的编译器貌似有个异常现象(会导致lambda内捕获到异常的this指针,貌似是lambda捕获的第一个变量的值被改变了)
然后发现我的esp8266的论坛(bbs.espressif.com)登不上去了。。用重置的密码也提示密码错误。。

Re: esp8266的问题可以放在这里讨论吗?

Posted: Wed Mar 27, 2019 7:24 pm
by q515949148
异常代码如下(这是个类的成员函数)
void begin(std::function<void()> cb) {
CappActive* temp0 = this;
_s->moveto(Servo_max, [this, temp0, cb] {
this->_s->moveto(target[id()][1], cb);
});
}
在lambda函数中,调用这条语句 会随机触发 exception 9、28、29
打log发现 this的值在lambda函数内外是不一致的。lambda函数内的值小于0x200
改成这样就正常了
void begin(std::function<void()> cb) {
CappActive* temp0 = this;
_s->moveto(Servo_max, [this, temp0, cb] {
temp0->_s->moveto(target[id()][1], cb);
});
}

Re: esp8266的问题可以放在这里讨论吗?

Posted: Fri Mar 29, 2019 9:09 am
by Helen L