Skip to content

Из чата про GDB, плазму и кикер

midenok edited this page Oct 17, 2013 · 2 revisions
12:14:21] Жека: оооо... крутяк
[12:15:26] Жека: так, ну я сейчас у тебя спрошу кое что, а потом буду думать и готовить все красиво для сайта
[12:15:34] Жека: вот бактрейс:
[12:15:36] Жека: 0x00007ffaa9de84ed in poll () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffaa9de84ed in poll () from /lib64/libc.so.6
#1  0x00007ffaa6565aa4 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ffaa6565bc4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffaabba72e6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007ffaaada6c1e in ?? () from /usr/lib64/libQtGui.so.4
#5  0x00007ffaabb77adf in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    () from /usr/lib64/libQtCore.so.4
#6  0x00007ffaabb77d68 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/libQtCore.so.4
#7  0x00007ffaabb7ca08 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#8  0x00007ffa96c26ea5 in kdemain (argc=1, argv=0x1000790)
    at /home/test/kde/sources/jeka/KDE/kde-workspace/plasma/desktop/shell/main.cpp:126
#9  0x0000000000407378 in launch (argc=1, _name=
    0x116f198 "/home/test/kde/installs/jeka/bin/plasma-desktop", args=0x116f1c8 "", cwd=
    0x0, envc=0, envs=0x116f1d0 "", reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x40d85f "0")
    at /home/test/kde/sources/jeka/KDE/kdelibs/kinit/kinit.cpp:726
#10 0x000000000040847a in handle_launcher_request (sock=8, who=0x40dafc "launcher")
    at /home/test/kde/sources/jeka/KDE/kdelibs/kinit/kinit.cpp:1218
#11 0x0000000000408d32 in handle_requests (waitForPid=0)
    at /home/test/kde/sources/jeka/KDE/kdelibs/kinit/kinit.cpp:1411
#12 0x000000000040a8f4 in main (argc=4, argv=0x7fff0e11c698, envp=0x7fff0e11c6c0)
    at /home/test/kde/sources/jeka/KDE/kdelibs/kinit/kinit.cpp:1899
(gdb)
[12:15:43] lyosha: ну
[12:18:10] Жека: блин, растерялся, вобщем как мы пришли вчера к тому приложению?
[12:18:37] lyosha: к какому?
[12:19:10] Жека: да забыл как называется, мы на нем остановились вчера, я подумал увижу название вспомню, вот со вчера никак не увижу
[12:19:39] Жека: вот мы видим что kinit запускает плазму 9 фрейм
[12:19:40] lyosha: в бэктрейсе был kdemain, мы открыли его фрейм и увидели класс
[12:19:50] Жека: ааа
[12:19:54] lyosha: у тебя точно тот же процесс, похоже на другой
[12:20:11] lyosha: а вижу.
[12:20:12] Жека: да вроде вчера тоже к плазме аттачился
[12:20:14] lyosha: фрейм 8
[12:20:22] Жека: ааа точно
[12:21:51] Жека: (gdb) f 8
#8  0x00007ffa96c26ea5 in kdemain (argc=1, argv=0x1000790)
    at /home/test/kde/sources/jeka/KDE/kde-workspace/plasma/desktop/shell/main.cpp:126
126         int rc = app->exec();
[12:22:29] lyosha: тебя всегда интересует самый низкий фрейм принадлежащий приложению
[12:29:29] Жека: Так, а ищем мы вызов некоторого виджет на плазме, я правильно понимаю?
[12:30:03] lyosha: кстати, я тут подумал -- я не хочу плазму совсем
[12:30:13] Жека: )))
[12:30:22] lyosha: тошнит меня от неё целиком и полностью
[12:30:39] Жека: ок
[12:31:03] lyosha: скорее всего, будем портировать kde3 desktop
[12:31:20] Жека: так, чего, kde3 компилить?
[12:33:23] Жека: а я вот подумал, неплохо было бы записывать наши встречи, поскольку ты выдаешь слишком много новой информации
[12:34:10] lyosha: разве? :) я думал наоборот я много повторяюсь
[12:34:34] Жека: ну вот видишь, я тебя сейчас обо всем хочу переспросить)
[12:34:40] Жека: значит мало повторяешься)
[12:34:42] lyosha: есть такое приложение в линухе, называется gtk-recordmydesktop
[12:34:54] Жека: ок
[12:35:21] lyosha: даже ковырял его, написано на питоне -- такая гадость...
[12:35:28] Жека: )))
[12:35:51] Жека: питон модный
[12:35:53] lyosha: http://code.google.com/p/gtk-recordmydesktop-patches/
[12:36:19] lyosha: извини за грубость, питон говно...
[12:36:31] lyosha: :)
[12:36:44] Жека: :) а я уж хотел посмотреть что это
[12:37:09] Жека: в смысле посмотреть, что за питон, раз курсов по нему что то дофига развелось
[12:37:17] lyosha: посмотри. столкнуться всё равно придётся, т.к. много из этого говна всяких поделок понашлёпали
[12:37:30] Жека: даа, это тоже верно
[12:37:32] lyosha: так же как дельфи -- чего бы на c++ не писать
[12:38:20] Жека: на дельфи по любому книжки красочнее
[12:38:21] lyosha: так нет -- появился целый отряд дельфистов, понашлёпали уйму ушлёпочного софта, потом установили себе питон...
[12:38:35] Жека: :D
[12:39:04] Жека: Ладно, Лех, на плазму забиваем? Компилим kde3 ,
[12:39:07] Жека: ?
[12:39:09] lyosha: зоолги короче -- дельфины, питоны и прочий зоопарк
[12:39:17] Жека: :D
[12:39:20] lyosha: дума...
[12:39:25] lyosha: ю
[12:39:55] Жека: ок
[12:40:01] lyosha: не устанете вы туда-сюда компилировать без видимого результата?
[12:40:26] Жека: как это без видимого? я вчера столько нового наслушался
[12:40:41] lyosha: залог успешного программирования -- как можно быстрее получить картинку на экране
[12:41:01] Жека: ну Xnext меня вполне удовлетворил
[12:41:03] Жека: в этм плане
[12:41:41] Жека: и еще одну оч крутую  картинку я получил когда зашел в TUI
[12:41:42] lyosha: мм
[12:41:57] lyosha: ага...
[12:42:21] lyosha: пока kde3 компилить не столь важно, важнее попробовать вставить kicker оттуда в kde4
[12:42:31] lyosha: так, чтобы он уже компилился в kde4
[12:43:06] Жека: это что такое?
[12:43:20] lyosha: kicker так называется desktop в kde3
[12:43:28] Жека: ааа
[12:43:43] Жека: подозреваю что проще откомпилить kde3
[12:44:04] lyosha: намного. но смысла в этом пока будет мало.
[12:44:10] Жека: ок
[12:45:08] lyosha: мы будем брать kde3 последний родной, не trinity. потому как ребятки из trinity его немало поуродовали
[12:45:27] Жека: понятно:)
[12:46:51] lyosha: а систему билда задействовать надо будет от kde4. поэтому придётся разобраться досконально как она работает
[12:48:17] Жека: у меня мурашки по коже от этих слов
[12:48:46] Жека: Расскажи еще раз последовательность наших действий?
[12:49:52] lyosha: возьми kicker вот отсдюда: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase/kicker
[12:50:21] lyosha: положи его рядом с плазмой, сделай так чтобы он собирался как плазма
[12:50:41] lyosha: увидишь кучу несовместимостей, которые надо будет портировать
[12:50:45] Жека: ага, а как это сделать?
[12:50:51] lyosha: как сделать что?
[12:50:57] Жека: назвать его плазмой?
[12:51:02] lyosha: назови кикером
[12:51:11] lyosha: и собирай как плазму
[12:52:08] lyosha: в исходниках ты увидишь записи для плазмы в CMakeLists. сделай аналогичные для кикера
[12:52:20] Жека: понял
...
[14:40:49] Екатерина: и по поводу того, чтобы kicker собирался - вот CMakeLists (kdebas-apps) http://pastebin.com/vQ89rT5G
[14:41:12] Екатерина: про плазму там только add_subdirectory( plasma )
[14:41:20] Екатерина: или я что-то не то смотрю?
[14:41:36] lyosha: всё правильно. делаешь add_subdirectory(kicker)
[14:41:54] lyosha: затем создаёшь внутри CMakeLists
[14:42:00] lyosha: и смотришь как он устроен в plasma
[14:43:09] Екатерина: ага, спасибо)