Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятно с передачей ссылки в конструктор, куда все пропало? 
V
    Опции темы
Fazil6
Дата 21.1.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



написал вот такую программу
Код

#include <string>
#include <cppunit/SourceLine.h>

int main()
{
    const std::string f(__FILE__);  // тут вопросов нет. Имеем то что нужно
    CPPUNIT_NS::SourceLine sl(f, __LINE__);  // тут чудеса

    return 0;
}

вобщем про чудеса.
попадая дебагером в конструктор SourceLine вижу вот такую картину
user posted image
естественно, что на этом выполнение моей программы заканчивается.
я полном ступоре.
SourceLine постой класс. Собственно он просто хранит стринговую и интовую переменную. Не от чего не наследуется и никаких изысков не содержит.
Компилируется это VS8.0 без варнингов в MS Server 2003.
Вобщем кто-нибудь имеет какие-нибудь идеи по пооду того что тут происходит.

PM MAIL   Вверх
Alek86
Дата 21.1.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



1. переменная lineNumber нормальна?
2. rebuild all помогает?

у меня было подобное в студии, когда я писал

Код
std::auto_ptr<IBase> pMain(new Derived());

тогда в строке, что хранилась в Derived тоже оказывался Bad Ptr

правда не уверен, что тебе эта инфа поможет


--------------------
user posted image    user posted image
PM MAIL   Вверх
Andrey44
Дата 21.1.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Fazil6, вы в режиме дебаг смотрите?

Добавлено через 6 минут и 26 секунд
Так тоже не проходит?
Код

#include <string>
#include <cppunit/SourceLine.h>
int main()
{
    CPPUNIT_NS::SourceLine sl(const std::string(__FILE__), __LINE__);  // тут чудеса
    return 0;
}



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
vinter
Дата 21.1.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Fazil6, не пробовал смотреть че там происходит на уровнее асма?


--------------------
Мой блог
PM MAIL WWW   Вверх
Fazil6
Дата 21.1.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



мда...
Вобщем ясности не добавилось.
Цитата(Alek86 @  21.1.2009,  15:11 Найти цитируемый пост)
1. переменная lineNumber нормальна?

кстати да. Эта тоже кривая. От нее просто ничего не зависит и что в ней особого значения не имеет.
Цитата(Alek86 @  21.1.2009,  15:11 Найти цитируемый пост)
2. rebuild all помогает?

нет конечно.
Цитата(Andrey44 @  21.1.2009,  15:26 Найти цитируемый пост)
Fazil6, вы в режиме дебаг смотрите?

а вот это помогает.
В релизе все нормально
Цитата(Andrey44 @  21.1.2009,  15:26 Найти цитируемый пост)
Так тоже не проходит?

не. Никакими подобными вариантам результат в дебаге не меняется


Цитата(vinter @  21.1.2009,  15:33 Найти цитируемый пост)
Fazil6, не пробовал смотреть че там происходит на уровнее асма? 

я в асме специалист мягко говоря средненький. Вот чего имеем
 
Код

int main()
{
004114B0  push        ebp  
004114B1  mov         ebp,esp 
004114B3  push        0FFFFFFFFh 
004114B5  push        offset __ehhandler$_main (4142D2h) 
004114BA  mov         eax,dword ptr fs:[00000000h] 
004114C0  push        eax  
004114C1  sub         esp,128h 
004114C7  push        ebx  
004114C8  push        esi  
004114C9  push        edi  
004114CA  lea         edi,[ebp-134h] 
004114D0  mov         ecx,4Ah 
004114D5  mov         eax,0CCCCCCCCh 
004114DA  rep stos    dword ptr es:[edi] 
004114DC  mov         eax,dword ptr [___security_cookie (418034h)] 
004114E1  xor         eax,ebp 
004114E3  mov         dword ptr [ebp-10h],eax 
004114E6  push        eax  
004114E7  lea         eax,[ebp-0Ch] 
004114EA  mov         dword ptr fs:[00000000h],eax 
    const std::string f(__FILE__);
004114F0  mov         esi,esp 
004114F2  push        offset string "d:\\source\\unte\\unte\\main.cpp" (4167FCh) 
004114F7  lea         ecx,[ebp-34h] 
004114FA  call        dword ptr [__imp_std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> > (4192B0h)] 
00411500  cmp         esi,esp 
00411502  call        @ILT+400(__RTC_CheckEsp) (411195h) 
00411507  mov         dword ptr [ebp-4],0 
    CPPUNIT_NS::SourceLine sl(f, __LINE__);
0041150E  mov         eax,dword ptr [`main'::`2'::__LINE__Var (418004h)] 
00411513  add         eax,2 
00411516  push        eax  
00411517  lea         ecx,[ebp-34h] 
0041151A  push        ecx  
0041151B  lea         ecx,[ebp-64h] 
0041151E  call        CppUnit::SourceLine::SourceLine (41122Bh) 


Добавлено через 3 минуты и 18 секунд
Все. Всем спасибо - все свободны. Просто линковать в релизе и дебаге нужно было разные либы.


Это сообщение отредактировал(а) Fazil6 - 21.1.2009, 15:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.