Я пишу этот код с использованием libtrace, но у меня возникла ошибка сегментации. Я поместил весь мой код здесь для уточнения. кто-нибудь может помочь мне, где проблема! Я также должен упомянуть, что код хочет пробовать некоторые специальные пакеты базы квадратного коэффициента.Ошибка Seg в коде C с libtrace
int main(int argc,char **argv)
{
while(trace_read_packet(trace,packet)> 0){
if (filter && !trace_apply_filter(filter,packet))
continue;
if (packet->type < TRACE_RT_DATA_SIMPLE)
/* Ignore RT messages */
continue;
numpackets ++;
if (flag == true)
{
first =trace_get_seconds(packet);
flag = false;
}
sizes[i] = trace_get_capture_length(packet);
i++;
randnumber = (double)rand()/(double)RAND_MAX;
if(randnumber <= probability)
{
//trace_dump_packet(packet);
trace_write_packet(output, packet);
sampledpackets++;
}
next = trace_get_seconds(packet);
if (double_t(next - first)== blocktime)
{
scv = var(sizes, i);
scv = a_scv * scv + scv_error;
m = a_m * m + m_error;
n = 1 - (n/2);
probability = (ltqnorm(n)*e*scv)/m;
i =0;
flag = true;
}
}
printf("\n");
printf("number of packets is : %llu\n",numpackets);
printf("number of sampled packet: %llu\n",sampledpackets);
if (trace_is_err(trace)) {
trace_perror(trace, "trace_read_packet");
}
trace_destroy(trace);
trace_destroy_output(output);
}
return 0;
}
Кроме того, это мой выход памяти:
7fff18b1b000-7fff18b3c000 rw-p 00000000 00:00 0 [stack]
7fff18bfe000-7fff18c00000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Где объявляются какие-либо ваши переменные? – kbshimmyo
в главном, но я не поставил его здесь – user3120628
Попробуйте выполнить компиляцию с '-Wall -g' и запустив его через [Valgrind] (http://valgrind.org/docs/manual/quick-start.html). – kbshimmyo