LINUX.ORG.RU

Сообщения maarv

 

Postgresql под Windows: ошибка (SIGSEGV) при обращении к таблице

Доброго времени суток!

Есть небольшая БД (postgresql) и работающая с ней программа (fpc,lazarus). В debian это все вместе работало. Перенесла эту систему по Windows 7 (все вместе на локальном компьютере). Посредством запросов psql в консоли или при помощи pgAdmin таблицы БД видны и корректны, но при попытке программного обращения к любой таблице возникает ошибка SIGSEGV. В логе при этом появляется сообщение: «неожиданный обрыв соединения с клиентом при открытой транзакции».

Видимо, я что-то не так настроила в конфигурации сервера бд (я в этом плане ещё относительный чайник). Подскажите, пожалуйста, где искать причину проблемы.

 ,

maarv ()

netcat : invalid connection to

Доброго времени суток!

Пытаюсь разобраться с udp-обменом.
Провожу эксперимент:

В одном терминале ввожу команды для прослушивания:

maarv@Computer1:~$ nc -vv -l -u -p 10770 0.0.0.0
0.0.0.0: inverse host lookup failed: Unknown host
listening on [any] 10770 …
invalid connection to [127.0.0.1] from localhost [127.0.0.1] 54258

maarv@Computer1:~$ nc -vv -l -u -p 10770 127.0.0.1
listening on [any] 10770 …
connect to [127.0.0.1] from localhost [127.0.0.1] 54258
123

А в другом терминале пытаюсь передать данные:

maarv@Computer1:~$ nc -vv -u 127.0.0.1 10770
localhost [127.0.0.1] 10770 (?) open
sdf
123

Вопрос: почему при прослушивании 0.0.0.0 возникает ошибка, а при прослушивании 127.0.0.1 ошибки не возникает?

Пожалуйста, подскажите, что я не так понимаю или не настроила.

 ,

maarv ()

Lazarus удалённая отладка: Error opening terminal: unknown

Доброго времени суток!

Пытаюсь запустить из Lazarus удалённую отладку. Отладчик на удалённой машине действительно запускается, но выдаёт ошибку:

izdelie1@izdelie1:~$ &"warning: GDB: Failed to set controlling
terminal: \320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217
\320\275\320\265
\320\277\320\276\320\267\320\262\320\276\320\273\320\265\320\275\320\260\n" 
Error opening terminal: unknown. 

Если делаю то же самое, но руками в терминале:

ssh -t izdelie1@izdelie1 gdb /home/izdelie1/bin/tmp1/prog1

– работает нормально.

Нигде не могу найти внятного описания настроек Lazarus для запуска удалённого отладчика. Подскажите, пожалуйста, что я там могла не так сделать.

 , ,

maarv ()

mariaDB не запускается

Начинаю знакомство с Astra Linux... Установили Astra Linux 1.6 Смоленск, установила mariadb-server и mariadb-client; enable, start, status, в результате:

Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; ...
Active: inactive (dead) ...

Ниже никаких пояснений/сообщений об ошибках нет. Лог не создан. Не создан файл сокета. (В конфигах всё в порядке - проверяла, ничего не меняла) Пробовала создать сокет вручную - это не помогло (и не должно, как я понимаю - он ведь должен автоматически создаваться). Владелец папки, где должен лежать сокет - mysql. В системном логе есть сообщения: «Starting MariaDB... » и «Started MariaDB ...»

Подскажите, пожалуйста, в каком направлении копать...

 ,

maarv ()

Проблема при использовании GTK+ под Windows

Здравствуйте! Проблема при использовании GTK+ под Windows. Пожалуйста, помогите чайнику - подскажите, что я не учитываю.

Поскольку есть желание в будущем перейти на Linux, интерфейс программы пишется на GTK+ (остальное написано на с++ и всё вместе компилируется под Visual Studio 10). При запуске программы создаётся пара вычислительных потоков, потом при помощи GTK+ рисуется основное окно и управление передаётся gtk_main(). Поначалу отладочная информация вычислительных потоков выводилась в стандартную консоль Windows (всё работало стабильно), а потом захотелось вывести эти данные в основном окне (уменьшить количество окошек на экране). В результате в какой-нибудь момент работы программы выскакивает ошибка: «Нарушение прав доступа при чтении», или такая: «ОС Windows инициировала точку останова в <название программы>. Это может быть вызвано повреждением кучи и указывает на ошибку в …» (отключаю вывод данных в область вывода - всё работает стабильно).

Область вывода формируется вот так:


GtkWidget *textview_show( GtkWidget *box, char *tit, int len )

{

GtkWidget *list_view;

GtkTreeStore *store;

GtkTreeIter iter;

GtkCellRenderer *renderer;

GtkWidget* scroll;

GtkTreeViewColumn *column;



	scroll = gtk_scrolled_window_new (NULL, NULL);

    	gtk_container_set_border_width (GTK_CONTAINER (scroll), 10);    

       gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);


       store = gtk_tree_store_new(1, G_TYPE_STRING);

	gtk_tree_store_append (store, &iter,NULL);

	gtk_tree_store_set (store, &iter, 0, win_to_utf_( "пам-па-бам", 256 ), -1);


	list_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));

	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW (list_view), TRUE);

	gtk_container_add(GTK_CONTAINER(scroll), list_view);


    	renderer = gtk_cell_renderer_text_new ();

	column = gtk_tree_view_column_new_with_attributes(win_to_utf_( "1", 256 ), renderer, "text", 0, NULL);

	gtk_tree_view_append_column(GTK_TREE_VIEW (list_view), column);


	gtk_widget_show_all(box);


	FILE *f=fopen( BCVM_FILE_LOG, "w" );

	fclose(f);


	return (GtkWidget *)list_view;

}


GtkWidget *_GLOBAL_TEXT;

void wmain1( int argc, char **argv )

{

…

_GLOBAL_TEXT = textview_show( hbox[3], "", len );

…

}

Выдача информации в область вывода происходит вот так:


void GTKConsole( char *sOutput )

{

GtkTreeModel *model;

GtkTreeIter   iter;

GtkAdjustment *vadj;

FILE *f;


static gint count=0;

static bool buzy=false;


	while(buzy){;;};

	buzy = true;


	if(_GLOBAL_TEXT){

		f=fopen( BCVM_FILE_LOG, "ab" );

		fprintf( f, "%s", sOutput );

		fclose(f);


		model=gtk_tree_view_get_model ((GtkTreeView *)_GLOBAL_TEXT);


		if(count>1000){

			gtk_tree_store_clear(GTK_TREE_STORE (model));

			count = 0;

		}

		count++;

	
		gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);

		gtk_tree_store_set (GTK_TREE_STORE (model), &iter, 0,  win_to_utf_( sOutput, 256 ), -1);


			
		vadj = gtk_scrollable_get_vadjustment ((GtkScrollable *)_GLOBAL_TEXT);

		gtk_adjustment_set_value(vadj, gtk_adjustment_get_upper(vadj));

				
	}


	buzy = false;

}

Вызов этой функции:


{

…

// вывод в стандартную консоль 

WriteConsole(hStdOutNew ,sOutput ,strlen(sOutput) ,NULL,NULL);	

// вывод в область вывода в окне

GTKConsole( str );

…

}

 ,

maarv ()

RSS подписка на новые темы