Portál AbcLinuxu, 10. května 2025 02:32

Dotaz: Proč KDevelop ignoruje breakpointy?

Luboš Doležel (Doli) avatar 24.2.2005 16:35 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Proč KDevelop ignoruje breakpointy?
Přečteno: 247×
Odpovědět | Admin
Ahoj,

když v KDevelopu nastavím několik breakpointů pomocí F9 a program sestavený na debug nechám ladit, tak si to breakpointů nevšímá. Není to chyba gdb, ale KDevelopu.

Když se totiž podívám do podokýnka GDB, tak na všechny breaky od GDB reaguje přikazem continue (Stopped due shared library event).

Zapomínám na něco nebo je KDevelop blb?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.2.2005 20:19 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Odpovědět | | Sbalit | Link | Blokovat | Admin
To jsou breakpointy ve sdílených knihovnách? (Nebo ještě hůř, dlopenovaných?)

Nevím teď z hlavy, co s nimi bylo ... zkus dát breakpoint na začátek programu (a opravdu do programu) a ostatní umístit, až to skončí na tom prvním breakpointu, jestli to na to bude mít vliv. Ale možná mluvím z cesty.
Luboš Doležel (Doli) avatar 24.2.2005 20:28 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Kdyby to byly breakpointy v knihovnách, tak to možná ještě pochopím, ale ono je to "normálně" uvnitř programu.
24.2.2005 20:37 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Zásadní otázka je, zda to dělá samotné gdb. Dělá?
Luboš Doležel (Doli) avatar 24.2.2005 20:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Vzhledem k tomu, že vždycky, když by se to mělo breaknout, tak se v podokně GDB zobrazí break a KDevelop na to reaguje continue, jak jsem psal v zadání otázky, tak se obávám, že to dělá KDevelop.
24.2.2005 20:58 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Zkus to v samotném gdb
gdb ./program
(gdb) break main
(gdb) r
a uvidíme...
Luboš Doležel (Doli) avatar 24.2.2005 21:20 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Hmm, tak jsem zkusil dát breakpoint do mainu a jede to i v KDevelopu. Ale jakmile se jedná o breakpoint ve funkci, která je vyvolávána událostí (stisk tlačítka), tak to přeskakuje... :-(
24.2.2005 21:59 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Jo, s knihovnami je to IIRC tak, že gdb nemůže umístit breakpoint, dokud nezná adresu, a adresa, na kterou se relokuje sdílená knihovna, je známa až po spuštění a skutečné relokaci.

Teď je jen otázka, zda to může i za tohle (zkoušels, co jsem psal v prvním příspěvku?). Normálně by nemělo, ale vinou objektovitosti a virtualmetodovosti C++ asi může moci.
24.2.2005 22:08 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Možná plácám, ale gdb snad zajímá adresa toho _jeho_ handleru, jestli se volá z knihovny nebo z jeho kódu by IMHO nemělo vadit, nebo jo?

Nakonec to může zkusit -- zavolat ten handler ze svého kódu, jestli se to zastaví nebo ne.
24.2.2005 22:43 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Proč KDevelop ignoruje breakpointy?
Nešlo mi o to, odkud se volá... no, nebudu to rozebírat, protože to asi je kravina tak jako tak.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.