• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Debugger in KDevelop will (manchmal) nicht.

Phillinger

Member
Hi,

ich nutze unter OpenSuSE 10.0 die IDE KDevelop 3.3.5 (gcc 4.0.2 und gdb 6.4) und entwickle eine grafische Anwendung, basierend auf der Xlib (keine Widgets, o.ä.). Nun gibt es dabei folgendes Ärgernis: Wenn ich den Debugger starte, geht das beim ersten Mal gut, vielleicht auch beim zweiten oder dritten Mal. Aber spätestens dann passiert es, dass das Programm einfach wieder stoppt und ich wieder in der IDE bin. Im Unterfenster mit den Textausgaben der Anwendung erscheint dann die Fehlermeldung
Code:
X Error of failed request: BadMatch(invalid parameter attributes)
Major opcode of failed request: 42(X_SetInputFocus)
Serial number of failed request: 292
Current serial number in output stream: 3732
Das ulkige ist: Je später am Tag, desto öfter muss ich den Debugger starten, bis es endlich mal wieder klappt. Als ob der Debugger auch auf den Feierabend hofft....

Nach ersten Recherchen gab es wohl mal ein ähnliches Problem, wenn das Programm "klipper" im Hintergrund mitläuft. Ich habe diese Anwendung allerdings von vornherein deaktiviert gehabt, daran liegt es leider nicht. Kennt jemand dieses Problem, oder noch besser die Lösung dafür?
 
OP
Phillinger

Phillinger

Member
Habe es herausgefunden, auch wenn ich die Lösung nicht mag:

Ich rufe nach dem XCreateWindow auch noch XSetInputFocus auf, um den Eingabe-Fokus zum Startzeitpunkt garantiert auf meiner Anwendung zu haben. Ich habe dieses XSetInputFocus einfach deaktiviert und seitdem startet der Debugger die Anwendung ohne Mucken.

Ich mag die Lösung desshalb nicht, weil ich nicht sicher weiß, warum das so ist. Ich vermute, KDevelop lässt sich nicht so gerne den Input Fokus aus der Hand nehmen, da es ja (vermutlich) das Parent-Window der Anwendung darstellt. Warum es dann manchmal trotzdem geklappt hat, weiß ich nicht. Ist mir vorerst auch egal, falls aber jemand eine passende Erklärung hat, immer her damit. :)
 
Oben