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ą??

... Ż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??

...
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

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

...
--
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ę

... dzięki!
--
Pozdrawiam
Konop