Вышел окончательный вариант xneur 0.1, т.е. первый которым в теории можно пользоваться. Данная программа представляет собой аналог Punto Switcher для Linux
Прежде чем ганять в отладчиках хотелось бы узнать на каком процессоре тестировали xneur, какую версию xorg использовали. И главное не волноваться, современем разберемся. Не все кто работает с valgrind и не использует xneur являются пофигистами. А проект не бросай.
Дык там наскок не требуется - нужно скачать, сконфигурить с префиксом "/usr", собрать, проинсталлить и запустить:
valgrind --leak-check=full xneur.
Поработать с прогой, потом выйти из нее. Valgrind выдаст подробнейший отчет - где были левые операции с памятью. Если есть отладочная информация - с точностью до имени файла, функции и номера строки.
И руководство по valgrind есть достаточно доходчивое. Есть все! Главное - иметь желание разобраться и не спешить. Зубры конечно могут и сами все отловить - но ведь гораздо приятнее (и полезнее) самому найти и уничтожить баг.
$ valgrind --leak-check=full abiword
==13985== Memcheck, a memory error detector.
==13985== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==13985== Using LibVEX rev 1658, a library for dynamic binary translation.
==13985== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==13985== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==13985== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==13985== For more details, rerun with: -v
==13985==
....
==13985== LEAK SUMMARY:
==13985== definitely lost: 30,220 bytes in 1,217 blocks.
==13985== indirectly lost: 1,496 bytes in 78 blocks.
==13985== possibly lost: 182,384 bytes in 187 blocks.
==13985== still reachable: 1,222,719 bytes in 10,981 blocks.
==13985== suppressed: 0 bytes in 0 blocks.
==13985== Reachable blocks (those to which a pointer was found) are not shown.
==13985== To see them, rerun with: --show-reachable=yes
Мамы, родите их обратно. Ну пожалуйста.... Я ведь только открыл и закрыл...
>Главное, чтобы Альфекс свой код в проект не контрибутил... Анекдоты на Си все помнят?
ну xneur я писал быстро и just for fun - если вспомнить как тут все орали по поводу отсутсвия оного в иксах. быстренько на коленке и написал - в чем проблема? хочется хорошего кода ? так возьми потратть время и исправь что ли? а то п... орать любой анонизмус могет.
код я там потом правил в своей части и немного в чужой (eReport не мое) и утечки смотрел, просто мне сам проект не так сильно интересен с учетом того что на opensource времени у меня не хватает.
Ты вот сам возьми и что нить полезное сделай, ну или посмотри в другие open source и в closed source проекты, если ты там не найдешь ошибок - то ты тупой урод.
[alex@alex .xneur]$ xneur
Found xneur PID: 7503
Set PID to lock file.
[DBG]: Initial Configuration Complete!
[DBG]: Loading Configuration File Complete!
[DBG]: Russian Dictionary complete!
[DBG]: English Dictionary complete!
[DBG]: Proto Language loaded complete!
[DBG]: Syllables Weight loaded complete!
[DBG]: Alphabet loaded complete!
[DBG]: Keyboard Layout Present In System:
[DBG]: 'US/ASCII' - must be RUSSIAN (group 0 in configuration file) (if NOT, see configuration file)!
[DBG]: Init Program Structure Complete!
[DBG]: Current mode is set to 0
[DBG]: New Processed Window With Name 'Konsole'.
[DBG]: New Processed Window With Name 'Soffice.bin'.
Cannot get WM_CLASS
[DBG]: New Processed Window With Name '(null)'.
Cannot get WM_CLASS
Cannot get WM_CLASS
[DBG]: New Processed Window With Name 'Gaim'.
[DBG]: KLB_NO_ACTION
[DBG]: KLB_ADD_SYM
[DBG]: Processing word: Y (language RUSSIAN)
[DBG]: Use New Algorithm (language 0)
[DBG]: Nothing to change
[DBG]: KLB_DEL_SYM_LEFT
[DBG]: KLB_NO_ACTION
[DBG]: KLB_NO_ACTION
[DBG]: KLB_NO_ACTION
[DBG]: KLB_ADD_SYM
[DBG]: Processing word: C (language RUSSIAN)
[DBG]: Use New Algorithm (language 0)
[DBG]: Nothing to change
[DBG]: KLB_ADD_SYM
[DBG]: Processing word: Cj (language RUSSIAN)
[DBG]: Use New Algorithm (language 0)
Ошибка сегментирования
Вот что он выдал:
[alex@alex .xneur]$ xneur
Found xneur PID: 7712
Set PID to lock file.
[DBG]: Initial Configuration Complete!
[DBG]: Loading Configuration File Complete!
[DBG]: Russian Dictionary complete!
[DBG]: English Dictionary complete!
[DBG]: Proto Language loaded complete!
[DBG]: Syllables Weight loaded complete!
[DBG]: Alphabet loaded complete!
[DBG]: Keyboard Layout Present In System:
[DBG]: 'US/ASCII' - must be RUSSIAN (group 0 in configuration file) (if NOT, see configuration file)!
[DBG]: 'Russian' - must be ENGLISH (group 1 in configuration file) (if NOT, see configuration file)!
[DBG]: Init Program Structure Complete!
[DBG]: Current mode is set to 0
...
Содержимое xneurrc:
...
# define xkb group
RusXkbGroup 0
EngXkbGroup 1
[alex@alex .xneur]$ xneur
Found xneur PID: 7788
Set PID to lock file.
[DBG]: Initial Configuration Complete!
[DBG]: Loading Configuration File Complete!
[DBG]: Russian Dictionary complete!
[DBG]: English Dictionary complete!
[DBG]: Proto Language loaded complete!
[DBG]: Syllables Weight loaded complete!
[DBG]: Alphabet loaded complete!
[DBG]: Keyboard Layout Present In System:
[DBG]: 'US/ASCII' - must be ENGLISH (group 0 in configuration file) (if NOT, see configuration file)!
[DBG]: 'Russian' - must be RUSSIAN (group 1 in configuration file) (if NOT, see configuration file)!
[DBG]: Init Program Structure Complete!
[DBG]: Current mode is set to 0
[DBG]: New Processed Window With Name 'Konsole'.
[DBG]: New Processed Window With Name 'Kwrite'.
[DBG]: New Processed Window With Name 'Konsole'.
> (Утирая слёзы радости) Небось руками терли до появления искр.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
XNEUR падает посему полный анализ выполнить за один вечер проблематично. Стиль написания ужасен, что так-же препятствует анализу. Но Вы не отчаивайтесь, хотя придется перебрать весь код по новому. На каком процессоре тестили Вы так и не ответили.
бля, ну вот все лажают, раз такие ниибацо программеры сядьте и напишите нормально! Прога конечно падает с segmentation fault постоянно, но это хоть что-то
> пипец, автор проги - идиот.. никогда ее не поставлю
В Фидо одно время было популярно высказывание: "Никогда ничего не делай для фидошников - тогда может на %уй не пошлют". Человек в меру своих сил сделал полезное дело, а ты, придурок, который скорее всего за всю жизнь ничего сложнее "Hello, world!" не написал, имеешь наглость его обзывать. Убей себя.
После исправления 2 и 3 ошибки xneur работает. Еще одна ошибка появляется кагда возвращаешся к ранее введенному тексту, выделяеш его и жмеш Shift+Break -> Выбрасывает "Ошибка сегментирования"
> Индикатор переключения раскладки это лишняя условность. Как и сами раскладки впрочем. Мне как пользователю гораздо удобнее вообще не думать о раскладках.
напомнило один случай с бабушкой-бухгалтером лет десять назад. - не могу зайти в компьютер - имя и пароль правильные вводите? - конечно! я это каждый день по несколько раз проделываю и никогда не ошибаюсь - хм... проверьте раскладку клавиатуры - она должна соответствовать той, которая была при установке пароля - (тишина) - может вы вводите пароль русскими буквами, а он был в латинице - вы меня совсем за дуру держите!?? я же вижу, какие кнопки я нажимаю!