Есть ли хороший общий метод для отладки макросов C ++?

Только для записи. У меня есть FrameLayout с TextView внутри, весь контент в LinerLayout, который будет заголовком моего виджета. Первоначально у меня было это

<LinearLayout
[...] 

<FrameLayout
    android:id="@+id/widget"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/app_name"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:textColor="@android:color/white"/>
</FrameLayout>

[...] 
</LinearLayout>

. Как и все здесь, у меня появилось сообщение «Проблема загрузки виджета». Решением было изменение этого

    android:layout_height="?attr/actionBarSize"

для этого:

    android:layout_height="64dp"
13
задан Jay Bazuzi 20 September 2008 в 00:24
поделиться

7 ответов

gcc-E произведет предварительно обработанный источник к stdout.

14
ответ дан dvorak 20 September 2008 в 00:24
поделиться

Для пользователей MSVC можно щелкнуть правой кнопкой по файлу/проекту, просмотреть настройки и изменить свойства файла для вывода предварительно обработанного источника (который обычно в obj каталоге).

8
ответ дан 20 September 2008 в 00:24
поделиться

Отладьте dissasembly с загруженными символами.

1
ответ дан Nemanja Trifunovic 20 September 2008 в 00:24
поделиться

Это не могло бы быть применимо в Вашей ситуации, но макросы действительно препятствуют отладке и часто злоупотребляются и преодолимы.

можно ли заменить их подставляемыми функциями или иначе избавиться ли от них всех вместе?

5
ответ дан Joe Schneider 20 September 2008 в 00:24
поделиться

Необходимо, вероятно, начать отодвигать Макросы формы и начать использовать встроенный и шаблоны.

Макросы иногда старый инструмент, правильный инструмент. Как последнее прибежище помните, что printf является Вашим другом (и на самом деле printf не то, что плохо друг когда Ваше выполнение многопоточного материала)

2
ответ дан Robert Gould 20 September 2008 в 00:24
поделиться

GCC и совместимые компиляторы используют-E опцию произвести предварительно обработанный источник к стандарту.

gcc -E foo.cpp

Studio Sun также поддерживает этот флаг:

CC -E foo.cpp

, Но еще лучше-xdumpmacros. Можно найти больше информации в документах Солнц.

0
ответ дан alanc 20 September 2008 в 00:24
поделиться

gcc - сохранять-временные-файлы выпишут.i (или .ii файл для C++), который является выводом препроцессора C, прежде чем он будет вручен компилятору. Это может часто быть поучительно.

1
ответ дан archbishop 20 September 2008 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: