Hi, Agree, threre may be memory corruption. Since it involves external/custom code, it seems even harder for others to reproduce & debug :) Just a common hint, please try to put more and more checks/assertions to help locating bug. And if it's possible, please use the latest revision instead. Regards, nanang On Wed, Sep 24, 2008 at 7:50 PM, Anshuman S. Rawat <arawat at 3clogic.com> wrote: > > Hi, > > I see a crash in pjsip which isn't easy to reproduce. I ran an instance with > windbg attached and got this trace. > > > 04abfee8 10080e0e sipPhone!sink_put_frame(struct pjmedia_port * this_port = > <Memory access error>, struct pjmedia_frame * frame = <Memory access > error>)+0x6b > [d:\pjsip7_latest\src\pjsip\pjmedia\src\pjmedia\mediaprocessor_port.c @ 847] > 04abff20 100810a4 sipPhone!write_port(struct pjmedia_conf * conf = > 0x034eb06c, struct conf_port * cport = 0x0491e00c, union pj_timestamp * > timestamp = <Memory access error>, pjmedia_frame_type * frm_type = <Memory > access error>)+0x31e > [d:\pjsip7_latest\src\pjsip\pjmedia\src\pjmedia\conference.c @ 1433] > 04abff54 10087989 sipPhone!get_frame(struct pjmedia_port * this_port = > 0x00000012, struct pjmedia_frame * frame = 0x047e85ec)+0x264 > [d:\pjsip7_latest\src\pjsip\pjmedia\src\pjmedia\conference.c @ 1807] > 04abff88 1008b72e sipPhone!clock_callback(union pj_timestamp * ts = > 0x1001493b, void * user_data = 0x04818528)+0xb9 > [d:\pjsip7_latest\src\pjsip\pjmedia\src\pjmedia\master_port.c @ 173] > 04abffa8 1001493b sipPhone!clock_thread(void * arg = 0x04818528)+0xde > [d:\pjsip7_latest\src\pjsip\pjmedia\src\pjmedia\clock_thread.c @ 252] > 04abffb4 7c80b6a3 sipPhone!thread_main(void * param = 0x00000000)+0x4b > [d:\pjsip7_latest\src\pjsip\pjlib\src\pj\os_core_win32.c @ 373] > 04abffec 00000000 kernel32!BaseThreadStart+0x37 > > sink_put_frame() is my custom function where I perform answering machine > detection. > > Watch for cport (argument in write_port) gave this- > > dt cport > Local var @ 0 Type conf_port* > +0x000 name : pj_str_t > +0x008 port : ???? > +0x00c rx_setting : ?? > +0x010 tx_setting : ?? > +0x014 listener_cnt : ?? > +0x018 listener_slots : ???? > +0x01c transmitter_cnt : ?? > +0x020 vad : ???? > +0x024 clock_rate : ?? > +0x028 samples_per_frame : ?? > +0x02c tx_level : ?? > +0x030 rx_level : ?? > +0x034 tx_adj_level : ?? > +0x038 rx_adj_level : ?? > +0x03c rx_resample : ???? > +0x040 tx_resample : ???? > +0x044 rx_buf : ???? > +0x048 rx_buf_cap : ?? > +0x04c rx_buf_count : ?? > +0x050 mix_adj : ?? > +0x054 last_mix_adj : ?? > +0x058 mix_buf : ???? > +0x05c tx_buf : ???? > +0x060 tx_buf_cap : ?? > +0x064 tx_buf_count : ?? > +0x068 tx_heart_beat : ?? > +0x06c delay_buf : ???? > Memory read error 0491e078 > > Dump for this memory location gave nothing. > > Dump for variable this_port (argument for get_frame) returned: > > dt this_port > Local var @ 0x4855040 Type pjmedia_port* > 0x00000012 > +0x000 info : pjmedia_port_info > +0x038 port_data : port_data > +0x040 put_frame : ???? > +0x044 get_frame : ???? > +0x048 on_destroy : ???? > Memory read error 0000005a > > It seems like memory corruption to me but can't figure out why and where. > Any pointers on this? Please let me know if you need more information. > > Btw, I am at rev 1846. > > Thanks, > Anshuman > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org