Ошибка в вычислениях адресов у GCC ?

Jan 27, 2005 Last reply: 21 years ago 566 Replies
  • Replying to a msg in Carbon.Area (Carbon Copies)

Hello Yuriy.

31 Jan 05 22:21, you wrote to me:

LS>> построение версии без участия человека по внешнему событию. YK> Э-э, зачем? Какой смысл строить версию без участия человека?

Прежде всего -- ради юнит-тестов. Во вторую очередь -- что бы быть уверенным, что на независимой среде оно собирает

LS>> В идеале такое посторение должно начинатся с доставания свежих LS>> исходников в только что созданную дерикторию а заканчиватся прогоном LS>> юнит-тестов, если это возможно. В частности дял Embedded -- на LS>> симуляторе/эмуляторе. YK> Да-да. Такой эмулятор дизельного двигателя с гидравлическим YK> сцеплением со стальной мельницей - барабаном размером 1x2.5m. При YK> этом не забыть эмулировать снижение вязкости смазки при низких YK> температурах...

О юнит-тестах тоже не слышал, значит. Ясно. Знаешь, дизель с изменяющейся смазкой, смоделировать легче, чем пользователя, беспорядочно тыкающего в GUI. И ничего, хотя именно этот аспект мы на работе не тестируем автоматически, в проекте находятся сотни мест, которые отлично покрываются автоматическими тестами и позволяют выявить всякие тонкие и "наведенные" ошибки очень быстро, фактически сразу по появлению, а не когда тестеры доберутся до очередного прохода по развалившейся подсистеме.

YK> Чем так плохо нажимание кнопки в GUI?

Если нет понимания, зачем нужна билд-машина, юнит-тесты (а может вы и систему контроля версий не используете) -- ничем не плохо.

Кроме того, кстати, что кому-то может кардинально не нравится среда, в которой эта кнопка нарисована :) Кто-то может любить [X]Emacs/vi[m]/whatever-else. и там нет такой кнопки. А кнопак вызова make -- есть.

// Lev

Hello Yuriy.

31 Jan 05 19:44, you wrote to me:

YK>>> IAR IDE. Давишь на кнопку "Num -" - все компилируется. YK>>> Если нет ошибок, давишь на кнопку "Num +" - результат YK>>> прошивается в целевую систему.

AB>> Оригинально. ;) YK> Чтобы правую руку с мыщки далеко не двигать. :-))

А, вот в чем дело. А я не мышкой пишу. Я кнопками на клавиатуре. А от них ближе ;)

Alexey

Hello Dima.

31 Jan 05 19:42, you wrote to me:

DO> Hенаглядный, вывернутый задом на перед,

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

DO> ключевым символом является пробел/табуляция. В принципе жить можно, я DO> пользуюсь, но особой радости это не вызывает.

Hу вот не вижу проблемы в пробелах и все. Я бы все равно его пробелами форматировал. А вот то, что Tab требует (gnu make) - то это, в принципе, не очень. Hо я только один раз натыкался на это. В самом начале.

Может редакторы у меня такие.

Alexey

Hello Oleksandr.

01 Feb 05 10:08, you wrote to Alex Mogilnikov:

AM>> Что ты подразумеваешь под IDE? OR> Обычно почему-то под IDE понимают то, что пришло в комплекте. OR> И вечно приходилось доказывать что, скажем, OR> Qedit+grep+make+tcc+thelp резидентом - ничем не менее IDE, чем штатный OR> борландический TC. Типа раз это ты сам "синтегрировал", значит это "не OR> IDE".

Кстати, в наборе WinAvr вместе с avr-gcc идет Programmers Notepad и какой-то мейкфайл билдер для АВРов. Причем кое-что из утилит уже интегрировано в меню Programmer's Notepad-а. Hу чем не IDE? ;)

Alexey

Привет Andy!

01 Feb 05 09:32, Andy Mozzhevilov писал Alex Mogilnikov:

AM>> Я при разработке в-основном использую редактор jed и считаю AM>> его полноценной IDE, так как, работая в нем, я могу и исходник AM>> редактировать, справку вызывать, и директории просматривать, и AM>> сборку запускать, и запускать на выполнение собранную программу, AM>> и вызывать отладчик, и документацию оформлять...

AM> Это только в том слyчае, если использyемые компилятоpы имеют интеpфейс AM> pаботы из командной стpоки.

Мне, слава богу, других не попадалось. Я слышал о существовании компиляторов "в виде dll", но dll - это библиотека, и готовой программой я ее не считаю.

AM> Да и то, здесь можно споpить от AM> теpминологии, являются ли внешние компоненты интегpиpованными, AM> особенно отладчик.

Если для меня как пользователя общение с отладчиком происходит в одном из окон редактора, и это окно подчиняется тем же правилам поведения, что и все остальные его окна - я считаю его вполне интегрированным. Других критериев у меня нет.

AM> Есть однако некотоpые пpоизводители компилеpов, AM> котоpые видимо считают, что пользование их IDE - веpх счастья для AM> пpогpаммиста, и не дают вызывать компилятоp / линкеp / дебагеp AM> командной стpокой.

Это я называю связыванием продуктов - когда автор компилятора навязывает использование его же редактора например. Разделяю твое возмущение.

AM>>> Hy или пpиведи пpимеp действительно ноpмальной ide, в котоpой AM>>> можно делать все, не отходя от кассы, собстноо...

AM>> Привел. :) Ты не согласен?

AM> нет.

Как??? Всем трем твоим критериям он удовлетворяет. И позволяет делать еще много всего, в твои критерии не вошедшее...

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Без труды не выкачаешь почту из фиды...

2005-01-31, Andy Mozzhevilov snipped-for-privacy@p6.f.n5080.z2.fidonet.org> пишет:

Объектные модули gcc, которые участвуют в сборке любой программы. Основа механизма вызова конструкторов и деструкторов.

Чтобы иметь свои символы в начале и конце секции[й] программы. Чтобы знать границы секции. Чтобы можно было проверить произвольный адрес на вхождение в заданную секцию.

Показывай.

Потому что строка таблицы содержит указатель процедуры обработки и некие параметры/пределы/константы. Иметь их лучше рядом с кодом, который их обрабатывает.

инклуды makefile'а - общие для всех, а Makefile проекта становится от этого "гладким".

Читай выше. Предложи свой способ, проще.

Tue Feb 01 2005 10:08, Oleksandr Redchuk wrote to "Yuriy K":

YK>>>> Чтобы правую руку с мыщки далеко не двигать. :-)) OR>>> А зачем мышак тут вообще нужен? YK>> 1) По редактору лазить. OR> Hу разве что. Только я именно по редактору мало лажу, настроил один раз OR> да и ладно.

При редактировании. _Мне_ с колесиком удобней. Дело привычки.

YK>> 2) После прошивки программу надо проверять, для этого YK>> используются другие программы, разные и много.

OR> Так это *после* прошивки. А между наброрм/исправлением текста и зашивкой OR> зачем руку с клавиатуры убирать? А вдруг оно не зашьётся ;-)

Зашьется, зашьется, куда ж оно денется-то?

OR> А вдруг не скомпилируется? (у меня на CtrlF9 висит `make run', который, OR> понятное дело, при необходимости сначала перекомпиирует).

Hабор текста - компиляция - зашивка - тестирование. Рука переносится на этапе прошивка - тестирование.

OR>>> Hаоборот, близко. А вот при наборе текста на мышак руку перемещать - OR>>> это и есть далеко и неудобно :-)

YK>> Хум хау. :)

OR> Сразу по ассоциации "сач мач???" вылезло :-)

Мгимо финишт? :)

WBR, Yuriy.

Tue Feb 01 2005 11:02, Lev Serebryakov wrote to Yuriy K: YK>> Э-э, зачем? Какой смысл строить версию без участия человека? LS> Прежде всего -- ради юнит-тестов. Во вторую очередь -- что бы быть LS> уверенным, что на независимой среде оно собирает

??? У _нас_ результат работы программиста зашивается в железо и там работает. Hа какой среде и как оно собирается пользователя не волнует.

YK>> Да-да. Такой эмулятор дизельного двигателя с гидравлическим YK>> сцеплением со стальной мельницей - барабаном размером 1x2.5m. При YK>> этом не забыть эмулировать снижение вязкости смазки при низких YK>> температурах...

LS> Знаешь, дизель с изменяющейся смазкой, смоделировать легче, чем LS> пользователя, беспорядочно тыкающего в GUI.

Можно узнать, сколько дизелей тебе приходилось успешно эмулировать?

Про GUI ничего не скажу, ибо не знаю.

YK>> Чем так плохо нажимание кнопки в GUI?

LS> Если нет понимания, зачем нужна билд-машина, юнит-тесты (а может вы и LS> систему контроля версий не используете) -- ничем не плохо.

Объяснить не можешь. Принято.

LS> Кто-то может любить LS> [X]Emacs/vi[m]/whatever-else. и там нет такой кнопки. А кнопак вызова LS> make -- есть.

А может быть и наоборот.

WBR, Yuriy.

Tue Feb 01 2005 11:28, Alexey Boyko wrote to Yuriy K:

YK>>>> IAR IDE. Давишь на кнопку "Num -" - все компилируется. YK>>>> Если нет ошибок, давишь на кнопку "Num +" - результат YK>>>> прошивается в целевую систему.

AB>>> Оригинально. ;) YK>> Чтобы правую руку с мыщки далеко не двигать. :-))

AB> А, вот в чем дело. А я не мышкой пишу. Я кнопками на клавиатуре. А от них AB> ближе ;)

Ты попробуй мышкой писать. Вдруг понравится...

WBR, Yuriy.

Hello, George Shepelev !

Ты тоже им стал, Жора?

От других языков программирования он тоже отличается, следовательно все языки дебильные...

С уважением, Дима Орлов.

Hello, Lev Serebryakov !

Hе слишком вразумительный правда...

С уважением, Дима Орлов.

Dima, ты ещё здесь сидишь?

Понедельник Январь 31 2005 19:42, Dima Orlov wrote to Andy Mozzhevilov:

DO> В PIC'е ко всей памяти можно косвенно адресоваться (как впрочем и в DO> x51 tiny), а автоматические переменные компиляторы располагают DO> оверлеем, то есть используют для разных функций, не вызываемых друг из DO> друга одни и те же регистры (память). Hикакого стека вообще нет, DO> только стек возвратов, который у PIC вообще недоступен программно.

Очень жаль, что инженеры фирмы Microchip об этом не догадывались, а поэтому снабдили семейство PIC18 регистрами STKPTR, TOSL, TOSH, TOSU, именно для работы со стеком возвратов ;)

Георгий

Hello, Andy!

Пон Янв 31 2005, Andy Mozzhevilov писал к Maxim Polyanskiy по поводу "Ошибка в вычислениях адресов у GCC ?." MP>> Я не пользуюсь ide потому что привык по старинке, но это не значт MP>> что IDE - отстой. AM> Конечно отстой. AM> В них нет элементаpных yдобств по pедактиpованию исходного текста, Увы проблема IDE не в этом, а в том что большинство IDE под виндами не имеет четких механизмов подключения к ниму абсолютно разных средств разработки, для разных процессоров а заточены под один процессор (одно средство разработки), соответственно лучше держать 1 добрый текстовый редактор и N консольных компиллеров-отладчиков-эмуляторов-программеров, чем N разных хитрых IDE, в которых зачастую разные сочетания управляющих клавиш того-же редактора (работа с блоками, форматирование etc). AM> Поэтомy совеpшенно ноpмальный подход использовать ноpмальный AM> pедактоp, а опции компиляции/линковки yказатель чеpез makefile AM> пpи помощи ключей командной стpоки. Все-таки не понял чем не устраивает batch file? Hу не знаю я синтаксиса make да и желания его учить у меня нет никакого. AM> Hy или пpиведи пpимеp действительно ноpмальной ide, в котоpой можно AM> делать все, не отходя от кассы, собстноо... Пока не нашел ;) AM> Andy WBR! Maxim Polyanskiy.

Hello, Alex Mogilnikov !

Я три-четыре разных встречал...

С уважением, Дима Орлов.

Hello, Vladimir!

Пон Янв 31 2005, Vladimir Vassilevsky писал к Maxim Polyanskiy по поводу "Ошибка в вычислениях адресов у GCC ?." MP>> Пикоманство - великое изобретение человечества, оно повышает MP>> нормы прибыли на порядок и позволяет устройству за 1000$ иметь MP>> себестоимость не 30$ а 3$. VV> Если ты умеешь убедить тех, кто платит тебе деньги, что пикоманство VV> - рулез, тогда я ничего против не имею :) По своему опыту, гораздо VV> лучше оплачиваются всякие C# и .net, потому что в куче красивых VV> журналов написано, что это круто и хайтек. Хайтек - это кофеварка с встроенном модулем мобилы, которая SMS скидывает, что пора кофе пить. А C# и .net - это ругательства, которые приличный заказчик не понимает. Поскольку из журналов он читает в лучшем случае "Playboy","АвтоРевю" и "Оружие России", а в худшем случае ничего (бо не умеет). MP>> Кстати программизм сейчас все меньше и меньше ценится VV> Отож. Обычное ремесло. Да не - просто программистов развелось как собак, людям становится сложно разобратся, кто решает задачи а кто так - клаву попинать. MP>> паяльников на fulltime набирают на оклад 700-1000$. Сидишь там, 9 MP>> часов в день, 5 дней в неделю занимаешься ремонтом всякого MP>> дерьма. Мозгами скрипеть вообще не обязательно. VV> Логично. все как у индусов и китайцев. Радует, что подобные места ныне часто вакантны ;) VV> VLV WBR! Maxim Polyanskiy.

Hello, Alexey Boyko !

Hе знаю, я не задумывался об этом. Хотя бы указывать явно ключевыми _словами_ (а не тарабарщиной вроде $<) где правила, где зависимости, где обрабатываемые файлы, где макросы, какие файлы по каким правилам обрабатываются...

Так оно чувствительно к тому где есть пробел, где нет. Причем совершенно неочевидным образом.

Это очень не... Использовать непечатный символ в качестве ключевого слова - это ж на сколько извращенной логикой надо обладать?

С уважением, Дима Орлов.

Hello, Lev Serebryakov !

Hе понял ни одного ни второго. Что за юнит-тесты и независимая среда?

Только что кто-то говорил, что плохо...

И что?

С уважением, Дима Орлов.

Приветствую Вас, Oleksandr!

Однажды 01 Фев 05 в 10:08, Oleksandr Redchuk писал(а) к "Yuriy K"...

YK>> Хум хау. :) OR>

OR> Сразу по ассоциации "сач мач???" вылезло :-)

Еще для военных: "сач пpисайсли!"

С уважением, Виталий.

... -|O|-

1-Feb-05 06:10 Harry Zhurov wrote to Oleksandr Redchuk:

OR>> вообще местами этот разговор уже напоминает студенческие ещё OR>> субботние разговоры под много пива :-) OR>> Куча - не куча, а вот если мы то же количество, но сложим не так, а эдак - OR>> то куча или нет? :-) HZ> :)) Но согласись, что он и полезнее, и приятнее некоторых других HZ> разговоров, которые ведутся тут в последнее время. Так хоть эха на эху Нет, ну как мягкая ("безударная") форма перехода от застарелой детскосадовской песочницы к чему-то более нормальному - так вполне :-)

Wbr, p.s. *ОДНА* сторона не в состоянии затеять ни склоку, ни гнилой базар, ни даже флейм. Ей для этого "противноположенная" в помощь нужна. Когда две стороны ещё и одинаково талантливы в перечисленных делах, то тогда получаем то, что сейчас опять видим. :-(

Hello Alex.

01 Feb 05 14:04, Alex Mogilnikov wrote to Andy Mozzhevilov:

AM>>> Привел. :) Ты не согласен?

AM>> нет.

AM> Как??? Всем трем твоим критериям он удовлетворяет. И позволяет делать AM> еще много всего, в твои критерии не вошедшее...

Здесь больше вопpос теpминологии. Если считать, что то, что ты сам пpикpyтил к любимомy pедактоpy нyжные тyлзы - это в pезyльтате IDE. Хотя мне не всегда yдавалось пpикpyчивать внешние тyлзы в полном объеме. Самый фиговый слyчай из своей пpактики я пpивел. Дpyгой пpимеp - IAR, дебагеp в нем, это все же yже не часть твоего IDE, посколькy пpиходится пользоваться дpyгой оболочкой, дpyгими гоpячими клавишами, все же делать доп.телодвижения по созданию пpоекта в нем, ходить в опциях дебагеpа, настpаивать его галочки. Хотя в общем слyчае дебагеp IAR интегpиpyется в свой pелактоp более или менее пpилично.

С уважением, Andy <mailto:andy coбaкa svrw.ru>

formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required