Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 27.10.2017, 02:01   #1
Андрей Цапко
Форумчанин
 
Регистрация: 10.04.2017
Сообщений: 66
Репутация: 10
По умолчанию Ошибка сегментации при работе с MySQL

Здравствуйте! Пишу библиотеку (обертку для библиотеки) для работы с mysql из C++. До этого работал на PHP и ООП стиль мне нравился. Делаю урезанную версию того класса, но возникает странная проблема. Не всегда (1 из 10), но все же возникает ошибка. Программа крашится и выдает Ошибку сегментации.
Есть класс Mysqli. У него конструктор. У класса в приватных параметрах есть структура MYSQL из API. Первой строкой в конструкторе стоит mysql_init, на котором программа и крашится. Уверен на 100% потому что до неё все работает а при краше даже следующая строчка не работает. Что не так?
Код:

class Mysqli{
public:
Mysqli(const std::string &host="", const std::string &username="", const std::string &passwd="", const std::string &dbname="", unsigned int port=3306, const std::string &socket=""){
std::cout<<"before\r\n";
	mysql=mysql_init(NULL);
	std::cout<<"after\r\n";
	connect_errno=mysql_errno(mysql);
	if(connect_errno){
		connect_error=mysql_error(mysql);
	}
}

Срока before выводится всегда, а строка after только если нету ошибки сегментации (она появляется раз в 10 запусков)
ОС: Ubuntu server 17.10
Компилятор: GCC 4.7.2

Заранее спасибо!)

UDP: Подмечу что в программе 4 потока, и в каждом создается подключение (что бы запросы из разных потоков не путались, один отправил а другой по случайности получил и свой и чужой ответ (сокет то 1)) и вроде как одно переключение гарантированно работает, а после второго ошибка (у каждого потока свой класс и соответственно своя структура MYSQL, то есть я не инициализирую её 2жды).

Последний раз редактировалось Андрей Цапко; 27.10.2017 в 02:09.
Андрей Цапко вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка сегментации при заполнении полей структуры. millepetrozza Общие вопросы C/C++ 2 14.04.2013 14:43
С++ Линейные списки. Ошибка сегментации при добавлении элемента. litviak Общие вопросы C/C++ 10 30.10.2011 23:48
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14
Ошибка сегментации при вызове system("PAUSE") Lavisa Помощь студентам 0 29.07.2009 17:43
Ошибка при работе с MySQL 3.51 в Delphi 2009 rainbow БД в Delphi 0 27.03.2009 07:47


07:38.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru