-
1. Data: 2011-08-03 20:02:19
Temat: CodeSorcery i brak wsparcia dla __LINE__ ??
Od: Konop <k...@g...pl>
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
-
2. Data: 2011-08-03 20:18:19
Temat: Re: CodeSorcery i brak wsparcia dla __LINE__ ??
Od: AK <a...@g...pl>
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
Pozdr
AK
-
3. Data: 2011-08-03 20:19:17
Temat: Re: CodeSorcery i brak wsparcia dla __LINE__ ??
Od: Michoo <m...@v...pl>
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.
--
Pozdrawiam
Michoo
-
4. Data: 2011-08-03 21:24:49
Temat: Re: CodeSorcery i brak wsparcia dla __LINE__ ??
Od: Konop <k...@g...pl>
W dniu 03.08.2011 22:19, Michoo pisze:
> 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
-
5. Data: 2011-08-03 21:28:01
Temat: Re: CodeSorcery i brak wsparcia dla __LINE__ ??
Od: Konop <k...@g...pl>
W dniu 03.08.2011 22:18, AK pisze:
> 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