BasKet for KDE

Finalmente fiz uma contribuição "visível" para um projeto de software livre, o "BasKet", uma espécie de "cesta" para dados como imagens, links, anotações, etc.

O problema estava quando o usuário arrastava uma nota (um item) para ela própria, no modo free-form. Às vezes apenas a nota era apagada e outras vezes o programa travava. Como instalei a partir do código fonte, recompilei com todas as informações de debug e passei a fuçar atrás da causa, mesmo sem saber C++, muito menos Qt/KDE.

Minha primeira tentativa foi a própria janela de debug que o BasKet fornece. Ela mostrou alguma informação, mas também travava junto com o programa. Então passei p/ gdb, criando um breakpoint numa função relacionada à ação de arrastar com o mouse, o que também não funcionou porque o evento do mouse era perdido quando chegava no breakpoint.

Então, rodei sem nenhum breakpoint e quando o programa travou interrompi o mesmo. Após algumas tentativas, e sabendo que ao travar ele atingia 100% de processamento, percebi que ele travava ao entar adicionar uma nota no final de uma fila. O que acontecia era que ao inserir/adicionar uma nota, ele percorria a lista atrás da última nota, algo como "note_tmp = note->next". Como note nunca receberia o valor null (note->next é igual a note), loop infinito…

Após essa "pesquisa", enviei os dados e meu diagnóstico para o mantenedor do projeto e já está no ar uma versão nova corrigida. \o/

PS: Próximos passos: Aprender Qt/KDE/C++


  1. Bem, não desista e vá evoluindo cada vez mais. A melhor para ir pegando prática é escolher um projeto e ir acompanhando o desenvolvimento dele através da lista de email (de desenvolvedores, se houver), o bugzilla (procurando bugs pequenos para resolver) e pelo IRC.

    Mas cuidado com radicalismos, no software livre tem _muito_ disso…😉

    PS: Hoje em dia estou mais ligado ao GNOME (Uso em casa e no estágio).


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s