Eclipse töréspontok

Fórumok

Sziasztok!
eclipse-cdt 8.6.1-et telepítettem Linux Mint 18-ban, ami tulajdonképpen Ubuntu 16.04. Az a gondom, hogy ha töréspontokat teszek egy sima C programba, akkor a debugger nem áll meg ott. Pontosabban, ha futás közben teszek be töréspontot, akkor megáll a debugger. De ha már álló állapotban teszek be újat, akkor az már nem működk. Illetve ha kilépek a debuggerből, majd újraindítom (jobb gomb->Debug as ...->Local C/C++ Application), akkor már megint működik a breakpoint, ami korábban nem működött.
Mondjuk nem csoda, hogy a debugger nem áll meg azoknál a törsépontoknál, amiket álló programvégrehajtás közben teszek be, mert a GDB Console ablakban az "info b" nem "látja" ezeket a töréspontokat, csak azokat, amiket futó programvégrehajtás közben tettem be, vagy a debugger indítása előtt.
Minden tippet szívesen vezsek, pl. hogy Gugliban hogyan találjam meg magam a megoldást.
Köszi!

Hozzászólások

Bizony. Ugyanis itt nem törik el semmi, csak szünetel a program futása. A break ugyanis nem csak törést jelent az angolban. Hanem szünetet is. A szünetpont meg eléggé hülyén hangzik.
A töréspont is.
Nincs a breakpointra jó magyar kifejezés szerintem. Van egy kifejezés, ami akár találó is lehetne, csak éppen eléggé nevetségesen hangzik: megálló.

A vicces, hogy a minap volt szerencsém a témáról beszélgetni az (angol anyanyelvű) tanárommal. Átnézettem vele egy rövidebb, szakkifejezésekkel teli doksit. Nos, számára a terminológia, a megszokott kifejezések új értelme és a teljesen szokatlan szóösszetételek legalább olyan furán hangzottak, mint mondjuk a szünetpont.

Szóval szerintem egyáltalán nincs semmi gond a szünetpont kifejezéssel. Elég jól visszaadja mit jelenthet (nem kevésbé mint a breakpoint), az egyedüli probléma vele, hogy az ember sehol se hallotta, a szokatlanság miatt pedig idegenkedünk tőle.

A billentyű szóval nincs semmi baj ugye? Lefogadom, hogy csak azért, mert régóta a köznyelv része, és évtizedek óta használjuk. Gondolj csak bele, elemezd a szót. Billenés, tyű végződés, amiről leginkább az jut eszembe, hogy egy nyelvész által művien megalkotott szóról van szó mintsem egy szimpla fordításról. De mindez rég történt, megszoktuk. Kíváncsi lennék, ha ma alkotná meg ezt a szót valaki, mennyire lenne sikeres, és hányan találnák hülyén hangzónak :)

"amiről leginkább az jut eszembe, hogy egy nyelvész által művien megalkotott szóról van szó "
Lehet, hogy így van, nem tudom.
Viszont a -tyú/-tyű főnévképzőt ismeri a nyelv és sokat használja is: csappantyú, szivattyú, csengettyű, töpörtyű stb.
Németből maradt ránk a billentyűzet helyett a tasztatúra szó, de kikopott vagy talán meg sem honosodott.

Ilyen az informatikai szaknyelv is. Állományt nem igazán használunk, helyette fájl van. Rendszermagot sem mondunk, helyette kernel van. Betűkonstans sincs, literál van. Szoftver van, nincs helyette jó magyar szó. Processzor helyett sincs. Interfész helyett sincs.

Ezzel nincs is semmi gond. Nem mondom azt, hogy ész nélkül kell mindent magyarra fordítani, csupán azt, hogy ami furának tűnik, az csupán a megszokás híján az.

Említetted a fájlt, szoftvert, processzort, literált, interfészt. Nem magyarra fordítottak, de a magyar kiejtés szerint honosultak. Teljesen jó, de csak azért, mert ezt szoktuk meg. Vannak kifejezések amiket ilyen formában vár az ember, én személy szerint pl húzom a szemöldökömet, ha valaki az angol formájukat használja ezeknek magyar szövegben. A minap láttam pár winyó-t is itt a fórumon :) Ellenben vannak kifejezések (breakpoint) amit angolul szoktunk meg, azok viszont pont úgy leírva nem furák, mindenhogy máshogy meg igen (szünetpont, brékpont, brékpojnt, mittomén).

Semmi logika nincs abban hogy egy kifejezés melyik formáját szeretjük és melyiktől borsódzik a háta az embernek, csupán az, hogy melyikkel találkozott először és melyiket szokta meg. Úgyhogy ennyi erővel akár el is fogadhatjuk a magyar átiratot, és kár hülyén hangzónak nevezni.

Gyanítom, hogy fordításkor, ha fordít bele debug infót, akkor teszi csak bele a breakpointot és csak oda ahova a build-elés előtt tetted. Néha én is csodálkozom, hogy egy C# kódba bármikor beleállhatok (beletörhetek egy ponttal = töréspont) debug közben.

Nem, mert mint írtam, futás közben is tud beletenni töréspontot. Csak aztán ha az egyiken megáll, akkor álló helyzetben hiába teszek be újabbakat, azok már nem jutnak el a GDB-ig. De ha csak simán leállítom a debuggert, majd újraindítom, akkor minden korábban beállított töréspont működik. Azaz nem kell újrafordítani, elég csak a debuggolást újrakezdeni.
Egy másik gépen, Linux Mint 17-en (azaz Ubuntu 14.04) két Eclipse-em van. Az egyik ott is az eclipse-cdt csomagból jött, a másikat meg binárisból tettem föl. Az eclipse-cdt csomagos Eclipse ott majdnem pont fordítva viselkedik: álló helyzetben tudok töréspontot tenni, a single-step is müxik, de futás közben nem tudok újabb töréspontot betenni, sőt a "suspend" sem megy. (A binárisból telepített Eclipse jól megy, csak az meg a STDOUT-ot kezeli rosszul.)

Szerintem valami Java inkompatibilitási probléma lesz, csak reméltem, hogy beállításokkal meg lehet oldani.

Lehet JAVA baj is, elég régi de info van benne: https://bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Tudom, hogy a project c++, de az eclipse+java összefonódás miatt lehet java probléma is.

És több helyen olvasott tanács: "Also try doing a clean all (works miracles in Eclipse)"

----------------
symbolweb.hu

tudom, hogy ezért le leszek hurrogva, de használj inkább NetBeanst. Ubuntun az a tapasztalatom, hogy messze jobban működik, mint az eclipse (C-ben fejlesztettem egy elég batár konzolos alkalmazást rengeteg függőséggel).

Ha csomagból tetted fel az Eclipse-t, akkor érdemes lehet egy próbát tenni valamelyik latest verzióval (3-as sorozat utolsója, vagy a 4-es valamelyik kurrense) letöltve és úgy telepítve. Az Eclipse logikáját elég nehézkesen lehet az Ubuntu csomagkezelőjével összepároztatni.