Thanks for your immediate reply. Now it is working fine. On Friday, 20 April 2018 14:23:09 UTC+5:30, Ben Noordhuis wrote: > > On Fri, Apr 20, 2018 at 9:49 AM, Ramesh R <[email protected] <javascript:>> > wrote: > > Please find my full code on stack overflow, why it is crashed? please > give > > me a help. thanks... > > > https://stackoverflow.com/questions/49920982/libuv-udp-echo-server-regarding > > > > Segmentation fault happened. > > > > static void on_recv(uv_udp_t* handle, ssize_t nread, const uv_buf_t* > rcvbuf, > > const struct sockaddr* addr, unsigned flags) { > > if(addr == NULL || nread == 0){ > > printf("addr is null addr: [%p], nread: [%d]\n", addr, nread); > > return; > > } > > > > printf("called next on rcv\n"); > > if (nread > 0) { > > printf("%lu\n",nread); > > printf("%s",rcvbuf->base); > > } > > printf("free :%lu %p handle: %p \n",rcvbuf->len,rcvbuf->base, > handle); > > free(rcvbuf->base); > > > > uv_udp_send_t send_req; > > char sender[17] = ""; > > > > struct sockaddr snd_addr; > > uv_buf_t sndbuf = uv_buf_init("PONG",4); > > uv_ip4_name((const struct sockaddr_in*) addr, sender, 16); > > fprintf(stderr, "Recv from %s\n", sender); > > if(uv_udp_send(&send_req, handle, (const struct uv_buf_t *)&sndbuf, > 1, > > (const struct sockaddr *)addr, on_send)) > > { > > printf("error\n"); > > } > > printf("send success\n"); > > return; > > } > > > > > > > > crashed status: > > ---------------------- > > > > Program received signal SIGSEGV, Segmentation fault. > > 0x0012af4a in uv__udp_run_completed (handle=0x80491a0) at > src/unix/udp.c:100 > > 100 QUEUE_REMOVE(q); > > (gdb) bt > > #0 0x0012af4a in uv__udp_run_completed (handle=0x80491a0) at > > src/unix/udp.c:100 > > #1 0x0012b111 in uv__udp_io (loop=0x132800, w=0x80491e0, revents=4) at > > src/unix/udp.c:146 > > #2 0x0011da69 in uv__run_pending (loop=0x132800, mode=UV_RUN_DEFAULT) > at > > src/unix/core.c:778 > > #3 uv_run (loop=0x132800, mode=UV_RUN_DEFAULT) at src/unix/core.c:360 > > #4 0x08048bf2 in main (argc=1, argv=0xbffffa14) at test-udp.c:108 > > (gdb) > > Lifetime issue: you need to allocate `send_req` on the heap instead of > the stack. >
-- You received this message because you are subscribed to the Google Groups "libuv" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
