Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
#1

Обращение в неправильный участок памяти, используя структуры и pcap.h - C++

20.02.2011, 10:24. Просмотров 653. Ответов 2
Метки нет (Все метки)

Суть в чем: Есть программка, которая использует libpcap. При получении нового пакета функцией:
C++
1
2
3
4
5
pcap_t *adhandle;
struct pcap_pkthdr header;
const u_char *packet;
...
packet = pcap_next(adhandle,&header);
и дальнейшем снятии данных с пакета путем:
C++
1
2
3
4
5
6
7
typedef struct MAC_address{u_char byte1;u_char byte2;u_char byte3;u_char byte4;u_char byte5;u_char byte6;}MAC_address;
typedef struct eth_header_src{MAC_address smac;}eth_header_src;
...
eth_header_src * ethhSrc;
...
ethhSrc = (eth_header_src*)(packet+6);
cout << ethhSrc->smac.byte1;
Так вот, про прошествии n-го количества пакетов(совершенно рандомное количество) вылетает segmentation fault(core dumped) - т.е обращение в левый участок памяти...
Вопрос - ПОЧЕМУ ??? Ответ сам не нашел, поэтому пишу сюда. Помогите советом, кто сможет!

Upd1: segmentation fault только тогда, когда идет обращение к элементам smac.
т.е cout << ethhSrc->smac проходит. cout << ethhSrc->smac.byte1 уже нет.
И соответственно все операции, необходимые мне, я не могу провести с этими данными...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 10:24     Обращение в неправильный участок памяти, используя структуры и pcap.h
Посмотрите здесь:

Ошибка при освобождении памяти (block type is valid) и неправильный вывод структуры данных - C++
Доброго времени суток. У меня есть класс вектор для реализации длинной арифметики. Возникли проблемы с умножением. Я устроил эту...

Заполнить участок памяти - C++
Вот такой вопрос: допустим есть у нас участок памяти размером WIDTH * HEIGHT * 4, и есть структура/массив такого вида: {0xFF, 0xCC, 0xAA,...

Обращение к члену структуры - C++
В чем разница между: a-&gt;b и a.b

Обращение по адресу к элементам структуры - C++
Есть структура fs: struct fs { f_element; s_element; ... n_element; }; Есть массив указателей на...

GDB обращение к памяти - C++
Прошу прощения за может глупый вопрос, но как такое может быть (gdb) print _params.DirectReplies $18 = true (gdb) print...

Выделение памяти и обращение к ней - C++
Здравствуйте! Вопрос таков: как обратиться к конкретным участкам памяти, если размер в байтах не равен стандартным размерам типов?...

Обращение к структуре в классе с выделением памяти - C++
Добрый день уважаемые форумчане. Столкнулся с такой проблемой. Есть класс: class Components { struct comps{ // -- База компонентов ...

Почему обращение к недоступному адресу в памяти - C++
Почему при проверке кода(компиляции) выскакивает сообщение :&quot;Недостаточный размер массивов или обращение по недоступному адресу в памяти&quot; ?...

Обращение к свойству класса в динамической памяти - C++
Здравствуйте! Возникла проблема с обращением к свойству класса, расположенному в динамической памяти. Пойду по порядку. Создаю вот...

Возможно ли обращение к статической памяти функции извне? - C++
Здравствуйте! Возможно ли сделать так? Obj* ptr; void F() { static Obj _obj = { }; ptr = &amp;_obj; }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
20.02.2011, 12:34     Обращение в неправильный участок памяти, используя структуры и pcap.h #2
Пробовали отдебажить пакет, на котором возникает такая ошибка? Посмотрите его содержимое.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.02.2011, 06:31  [ТС]     Обращение в неправильный участок памяти, используя структуры и pcap.h #3
Да я ему записи даже закидывал расширения .pcap. Все нормально работает. Т.е либо дело в libpcap(маловероятно), либо в моей работе с packet, получаемом с pcap_next()
Yandex
Объявления
22.02.2011, 06:31     Обращение в неправильный участок памяти, используя структуры и pcap.h
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru