RTV forum PL | NewsGroups PL

Dlaczego makro __LINE__ nie działa w CodeSorcery przy debugowaniu projektu?

CodeSorcery i brak wsparcia dla __LINE__ ??

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Dlaczego makro __LINE__ nie działa w CodeSorcery przy debugowaniu projektu?

Konop
Guest

Wed Aug 03, 2011 8:02 pm   



Witam

W necie dużo jest napisane na temat użycia makr __FILE__ i __LINE__
.. No to sobie zrobić chciałem piękny debug. Jak wpiszę tak:
Debug("Błąd! " __FILE__ " \n");
to jest OK. Zaś jeśli wpiszę:
Debug("Błąd! " __LINE__ " \n");
to wywala błąd :/...
Dodam, że dziwnym trafem Eclipse także nie potrafi rozwinąć makra
__LINE__ a rozwija makro __FILE__ (ale pełną ścieżkę, a kompilator
rozwija to tylko do np. "/src/plik.c"). Co jest nie tak?? Czy te
wszystkie strony kłamią?? Smile... Żebym nie był gołosłowny:
http://sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_chapter/cpp_3.html#SEC21

Zmienili coś od wersji 3.0.2?? Smile...

Ja używam:
arm-none-eabi-gcc (Sourcery G++ Lite 2011.03-42) 4.5.2

Z góry dzięki za podpowiedzi!

--
Pozdrawiam
Konop

AK
Guest

Wed Aug 03, 2011 8:18 pm   



W dniu 2011-08-03 22:02, Konop pisze:
Quote:
Witam

W necie dużo jest napisane na temat użycia makr __FILE__ i __LINE__ . No
to sobie zrobić chciałem piękny debug. Jak wpiszę tak:
Debug("Błąd! " __FILE__ " \n");
to jest OK. Zaś jeśli wpiszę:
Debug("Błąd! " __LINE__ " \n");
to wywala błąd :/...
Bo __LINE__ to jest int!

Zrob tak:
Debug("Błąd! %s: %d\n", __FILE__, __LINE__);

i bedzie dzialac

Pozdr
AK

Michoo
Guest

Wed Aug 03, 2011 8:19 pm   



W dniu 03.08.2011 22:02, Konop pisze:
Quote:
Jak wpiszę tak:
Debug("Błąd! " __FILE__ " \n");
to jest OK. Zaś jeśli wpiszę:
Debug("Błąd! " __LINE__ " \n");
to wywala błąd :/...
To następnym razem przeczytaj co to za błąd...


__LINE__ jest liczbą. Musisz albo użyć ją jako liczbę, albo opakować w
cudzysłów jak chcesz użyć w kontekście ciągu znaków.

--
Pozdrawiam
Michoo

Konop
Guest

Wed Aug 03, 2011 9:24 pm   



W dniu 03.08.2011 22:19, Michoo pisze:
Quote:
W dniu 03.08.2011 22:02, Konop pisze:
Jak wpiszę tak:
Debug("Błąd! " __FILE__ " \n");
to jest OK. Zaś jeśli wpiszę:
Debug("Błąd! " __LINE__ " \n");
to wywala błąd :/...
To następnym razem przeczytaj co to za błąd...

__LINE__ jest liczbą. Musisz albo użyć ją jako liczbę, albo opakować w
cudzysłów jak chcesz użyć w kontekście ciągu znaków.


Jaa, czytanie ze zrozumieniem Wink... sorry w takim razie za głupie
pytanie i dziękuję za wyjaśnienie. Czerwienię się ze wstydu Wink...

--
Pozdrawiam
Konop

Konop
Guest

Wed Aug 03, 2011 9:28 pm   



W dniu 03.08.2011 22:18, AK pisze:
Quote:
W dniu 2011-08-03 22:02, Konop pisze:
Witam

W necie dużo jest napisane na temat użycia makr __FILE__ i __LINE__ . No
to sobie zrobić chciałem piękny debug. Jak wpiszę tak:
Debug("Błąd! " __FILE__ " \n");
to jest OK. Zaś jeśli wpiszę:
Debug("Błąd! " __LINE__ " \n");
to wywala błąd :/...
Bo __LINE__ to jest int!
Zrob tak:
Debug("Błąd! %s: %d\n", __FILE__, __LINE__);

i bedzie dzialac

Dzięki za odpowiedź. Mój "debug" nie wspiera składni printf, ale mam
osobną funkcję do wyrzucania intów, tak więc sobie poradzę Wink... dzięki!

--
Pozdrawiam
Konop

elektroda NewsGroups Forum Index - Elektronika Polska - Dlaczego makro __LINE__ nie działa w CodeSorcery przy debugowaniu projektu?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map