将数据包写入pcap文件时出现分段错误

时间:2013-07-24 20:13:25

标签: c++ c pcap libpcap

我正在尝试使用pcap库将我们的应用程序的输出数据包写入pcap文件但是当我调用pcap_dump

时出现分段错误

我曾尝试编写以下小程序,基本上可以重现我的问题

int main()
{    
     pcap_t *m_p;
     pcap_dumper_t *m_pd;
     m_p = pcap_open_dead ( DLT_RAW, 65535 );

     m_pd = pcap_dump_open ( m_p, ( char * ) "abc.pcap" );

     char a[100] = "\0";
     strcpy(a,"name");
     struct pcap_pkthdr p;
     p.caplen = strlen(a) + 1;
     p.len = p.caplen;

     pcap_dump ( ( u_char * ) m_p, &p, ( u_char * )  a );

     pcap_close(m_p);
     pcap_dump_close(m_pd);

     return 0;        
}

以下是我获得的核心内容

gdb) bt
#0  0x00007f74e6d0df5d in fwrite () from /lib64/libc.so.6
#1  0x00007f74e77c9bfd in pcap_dump () from /usr/lib64/libpcap.so.1
#2  0x000000000040084e in main () at mypacp.cc:17

有人可以告诉我我错过了什么。

由于

0 个答案:

没有答案