2010-07-11 4 views
0

Это странный вопрос, в котором я не уверен, с чего начать искать.Проблема отладки C++ с основанной на Eclipse IDE

Прежде всего, я не программировал C++ в течение последних 10 лет, так что это могло быть так, что я забыл несколько вещей. Во-вторых, IDE, которую я использую, основано на Eclipse (которое я никогда не использовал) и настроен для мобильной разработки на базе Samsung bada (он запускает эмулятор для целей отладки)

Я отправляю свои образцы кода как изображения потому что редактор StackOverflow WYSIWYG, похоже, имеет проблему синтаксического анализа C++.

[EDIT] Из-за жалоб я отредактировал свой вопрос, чтобы удалить изображения. Надежда, что помогает у меня есть следующий файл заголовка :)

...

#include <FApp.h> 
#include <FBase.h> 
#include <FGraphics.h> 
#include <FSystem.h> 
#include <FMedia.h> 

using namespace Osp::Media; 
using namespace Osp::Graphics; 

class NineAcross : 
    public Osp::App::Application, 
    public Osp::System::IScreenEventListener 
{ 
    public: 

    static Osp::App::Application* CreateInstance(void); 

    public: 
    NineAcross(); 
    ~NineAcross(); 

    public:  
    bool OnAppInitializing(Osp::App::AppRegistry& appRegistry); 

    private: 
    Image *_problematicDecoder; 
}; 

... и следующий файл CPP ...

#include "NineAcross.h" 

using namespace Osp::App; 
using namespace Osp::Base; 
using namespace Osp::System; 
using namespace Osp::Graphics; 
using namespace Osp::Media; 

NineAcross::NineAcross() 
{ 
} 

NineAcross::~NineAcross() 
{ 
} 

Application* NineAcross::CreateInstance(void) 
{ 
    // Create the instance through the constructor. 
    return new NineAcross(); 
} 

bool NineAcross::OnAppInitializing(AppRegistry& appRegistry) 
{ 

    Image *workingDecoder;  
    workingDecoder->Construct(); 

     _problematicDecoder->Construct(); 

    return true; 
} 

Теперь в моем файле CPP , если я прокомментирую строку, которая читает _problematicDecoder-> Construct(); ... Я могу установить точку останова и с радостью перейти по вызову к Constuct() на workingDecoder. Однако, как только я раскомментирую строку, которая читает _problematicDecoder-> Construct(); ... Я в конечном итоге с IDE говорил мне ...

«Нет источника для "OSP :: СМИ :: Image :: Construct()"

Другими словами, почему может Я НЕ отладить этот код, когда я ссылаться изображения * изображение из заголовка файла?

Есть идеи?

Спасибо :-)

+0

Редактор не имеет проблем с C++. Просто вставьте свой код и отступьте его четырьмя пробелами, используя кнопку панели инструментов «Код». – Philipp

+0

Я для одного не буду читать код, размещенный как изображение. – 2010-07-11 08:11:44

+0

Хорошо, позвольте мне попробовать отредактировать сообщение, как вы предложили. Спасибо Philipp – Senkwe

ответ

0

Хорошо, проблема решена.

Идея заключается в том, чтобы первый новый вверх экземпляр изображения, как так ...

_decoder = новый Osp :: Медиа :: Изображение();

И затем выполните _decoder-> Construct().

Забавно, это кажется явным очевидным для меня сейчас, исходящим из мира C#, хотя почему код, который я разместил для workingDecoder, до сих пор несколько загадочен для меня.Тот факт, что образцы проектов, предварительно загруженные с помощью IDE bada, похоже, не вызовут вызов new(), заставляет меня думать, что, возможно, эти образцы устарели от нашей синхронизации.

Либо это, либо я действительно ЧЕМ дико из цикла C++.

В любом случае, спасибо за усилия, ребята.

Оценка:

0

Это обычно означает, что вы перейдя через какой-то код, который у вас отсутствует. Я предполагаю, что Osp::Media::Image - это класс, поставляемый Samsung или аналогичный, для которого у вас нет файла cpp. Таким образом, это означает, что отладчик не может показать вам текущую строку кода, пока вы используете функцию Osp::Media::Image.

В качестве альтернативы, у вас есть хороший исходный код для этого класса, но Eclipse не знает, где он находится. В этом случае вы можете добавить правильные каталоги в окне «Конфигурации отладки».

+0

Спасибо, что ответ Широко. Я подумал об этом, но почему это так, что кажется, что все работает нормально, пока я не использую переменную Image * из файла заголовка? – Senkwe

+0

Вы играете с отладчиком или вдруг перестаете работать в этом коде? Если это последний, вы, вероятно, пытались разыменовать 'NULL' или какой-то мусор, который заставит отладчика приостанавливаться, в середине неизвестного кода. – Shiroko

+0

Широко, я перешагиваю через отладчик. Для меня _problematicDecoder и workingDecoder являются точно такими же, за исключением тех случаев, когда они определены. Поэтому я действительно запутался в том, почему workDecoder-> Construct() в порядке и _problematicDecoder-> Construct() - нет. – Senkwe