|From:||Sergio R. Caprile|
|Subject:||Re: [lwip-users] Assertion "pbuf_free: p->ref > 0" failed at line 651 in ../src/lwip/core/pbuf.c|
|Date:||Fri, 14 Nov 2014 09:57:55 -0300|
|User-agent:||Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0|
If I was you, I would:|
- make sure the port I'm using works, by first running known good examples.
- study those examples to learn how to work with lwip.
- read the wiki, it is great for bed reading.
- trace assertions to my code, execute step by step and see what I'm doing wrong.
- try to figure it out by myself, but if I can't, I would write a brief and concise description of what I'm doing, what I can't solve, and what I don't understand. That description would include a description of the system in which I'm doing that, stating that I followed the previous steps and the system works, and what type of lwIP API I'm using.
With the data you provide, I can only direct you to line 651 of pbuf.c and see why something you are passing to that function is incorrect.
OK, I feel like wasting some time today, here I go:
$ vi src/core/pbuf.c
pbuf_free(struct pbuf *p)
/* all pbufs in a chain are referenced at least once */
651--> LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0);
/* decrease reference count (number of pointers to pbuf) */
ref = --(p->ref);
that means you are trying to free an already freed pbuf.
|[Prev in Thread]||Current Thread||[Next in Thread]|