Проблема отладки C ++ с IDE на основе Eclipse - PullRequest
0 голосов
/ 11 июля 2010

Это странный вопрос, поскольку я не уверен, с чего начать.

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

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

[ПРАВИТЬ] Из-за жалоб я отредактировал свой вопрос, чтобы удалить изображения. Надеюсь, это поможет:)

У меня есть следующий заголовочный файл ...

#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 () on workingDecoder . Тем не менее, как только я раскомментирую строку с текстом _problematicDecoder-> Construct (); ... я получаю IDE, сообщающую мне ...

"Источник недоступен для" Osp :: Media :: Image :: Construct () "

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

Есть идеи?

Спасибо: -)

Ответы [ 2 ]

0 голосов
/ 11 июля 2010

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

Идея состоит в том, чтобы сначала создать экземпляр Image следующим образом ...

_decoder = new Osp :: Media :: Image ();

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

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

Либо это, либо я на самом деле дико вышел из цикла C ++.

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

Оценил:)

0 голосов
/ 11 июля 2010

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

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

...