metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-25 11:35 am

Visual Studio

А скажите, кто 2010 студию видел - там (в конце концов, #$&#*#&$) сделали чтобы проекты в солюшене можно было расставить в порядке зависимостей, или хотя бы вручную, а не сортировалось по алфавиту всегда?
Как-то это бесит - ну какая нафиг сортировка по именам по алфавиту в графе?

[identity profile] aamonster.livejournal.com 2010-08-25 01:30 pm (UTC)(link)
Пойду, напишу тысячу раз - "Никогда не спорь с емаксерами" :-)

[identity profile] permea-kra.livejournal.com 2010-08-25 01:39 pm (UTC)(link)
емакс вообще не работает.

[identity profile] berezovsky.livejournal.com 2010-08-25 01:40 pm (UTC)(link)
ну-ну, блядь

[identity profile] aamonster.livejournal.com 2010-08-25 01:42 pm (UTC)(link)
Кстати, не в рамках спора, а как вопрос человека не знающего человеку предположительно знающему - какие возможности отладки для Win32-приложений на C++ он обеспечивает?
Edit and Continue
Breakponts
Просмотр значений переменных (особенно одобряется просмотр контейнеров STL, а лучше и boost тоже, в читаемом виде)
Просмотр отладочного вывода (OutputDebugStrings)

[identity profile] theiced.livejournal.com 2010-08-25 02:01 pm (UTC)(link)
>Пойду, напишу тысячу раз - "Никогда не спорь с емаксерами" :-)

подай идею товрищам которые делают симпсонов ;]]]]

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

вы таки должны понять что для отладки-с++-по-ф10 в емаксе используется гдб. это не убогость емакса, это юникс вэй. в емаксе, кстати, для гдб написана специальная морда для интеграции со всем остальным.

1. edit & continue - не знаю. про существование данного мегаизвращения я узнал от вас же только на днях и до сих пор не представляю даже теоретически как его прмемнить. да - мне пытались объяснить но я тупой и не понял.

2. breakpoints - есть, с тыщей наворотов.

3. просмотр значений переменных (в том числе stl, boost и даже вашей личной мегаизвращённой либы) - есть, причём пресдавить можно что угодно и в каком угодно виде.

4. просмотр отладочного вывода - поясните.

[personal profile] alll 2010-08-25 02:04 pm (UTC)(link)
Для просмотра отладочного вывода у сисинтералз была отдельная утилита, dbgview чтоль.

[identity profile] nivanych.livejournal.com 2010-08-25 03:07 pm (UTC)(link)
;-) Гыыыы
Политкорректный theiced, это 5! ;-)

[identity profile] theiced.livejournal.com 2010-08-25 03:37 pm (UTC)(link)
мне что таги <sarcasm> расставлять везде?

[identity profile] zamotivator.livejournal.com 2010-08-25 05:01 pm (UTC)(link)
В том-то и прикол, CMake не запрещает отлаживаться в студии.

[identity profile] zamotivator.livejournal.com 2010-08-25 05:01 pm (UTC)(link)
Хрен редьки не слаще, серьёзно

Re: Visual Studio

[identity profile] zamotivator.livejournal.com 2010-08-25 05:02 pm (UTC)(link)
Там кучу говна расковырять надо - шобы понять куда это вкорячивать.
На CMake проще уйти.

[identity profile] aamonster.livejournal.com 2010-08-25 05:33 pm (UTC)(link)
Насчёт gdb: использование для отладки не одного средства, а связки средств - не криминал.
1. Представьте, что вы пишете систему, которая
a) изрядное время грузится (большая она, что уж там... такой досталась)
б) взаимодействует с юзером и по результатам что-то там считает - так что восстановление текущей ситуации после старта программы - изрядное время и работа руками (ну, работу руками можно частично автоматизировать - но это тоже геморрой).
Т.е. от старта до момента, который надо отлаживать - минуты и возня.
Edit and continue в такой ситуации спасает.
На мелких проектах - не особо нужен.
4. Ну, это специфика либ от MS - есть функция OutputDebugString (и несколько завязанных на неё), позволяющих кинуть строку в отладчик. Удобная вариация на тему логов.

Да, вопросы "есть?" подразумевают именно "есть?", а не "можно сделать?". Если имеет смысл использовать emacs как замену студии - то явно всё нужное давно должно быть кем-то сделано и собрано в одну кучу. Если этого не сделано - значит, emacs (пока) не годится.

[identity profile] aamonster.livejournal.com 2010-08-25 05:35 pm (UTC)(link)
В смысле? msbuild - просто для сборки созданных цмакой проектов, плюс редактор и отладчик по вкусу.

[identity profile] zamotivator.livejournal.com 2010-08-25 05:38 pm (UTC)(link)
Ну так и devenv канает, просто ему solution кормишь для сборки из command-line и все.
И НИКТО не запрещает использовать студию как отладчик и редактор

[identity profile] aamonster.livejournal.com 2010-08-25 05:47 pm (UTC)(link)
Ну, я просто уже привык, что из консоли удобнее собирать проекты msbuild'ом, чем devenv'ом (тем паче, что, кажется, последние devenv'ы всё равно дёргают msbuild). И умею настраивать автоматизированную сборку.

А по поводу студии для редактирования и отладки - см. пункт про "прострелить себе ногу". Пока студия не научится поддерживать проекты cmake - kexit bcgjkmpjdfnm yfnbdyst/

[identity profile] aamonster.livejournal.com 2010-08-25 05:47 pm (UTC)(link)
* лучше использовать нативные.

[identity profile] zamotivator.livejournal.com 2010-08-25 05:48 pm (UTC)(link)
Извините, но что значит "поддерживает"?

[identity profile] arush-damage.livejournal.com 2010-08-25 05:53 pm (UTC)(link)
Тут похоже лучше так
100 DAL
200 BAL
300 ...

%)

[identity profile] aamonster.livejournal.com 2010-08-25 05:56 pm (UTC)(link)
Поддерживает - это значит, что при попытке изменить проект (добавить файл/класс, изменить свойства проекта, изменить свойства какого-то из исходных файлов) будет изменён файл cmake, а не *.vcproj, который будет затёрт при первой же компиляции.

[identity profile] zamotivator.livejournal.com 2010-08-25 05:59 pm (UTC)(link)
Вы сами понимаете почему это невозможно, или вам ссылку на документацию по CMAKE дать?

[identity profile] theiced.livejournal.com 2010-08-25 06:02 pm (UTC)(link)
1. я хорошо себе представляю. вот я в данную секунду вожусь с системой в которой для реинита сеанса надо проделать тучу вуду действий и подождать минут 10. есессно вся отладка на логах ;) опять же сервак находится за двумя впнами и тремя ссшами - подключиться к нему будет... эммм... несколько проблематично. но аргумент понят - edit & continue это такой костыль если нет логов и долго рестартовать (хотя меня бы убила паранойя по поводу сайд эффектов).

4. удобная? убейте меня :) специальное апи вместо простого и клёвого текстового файла.

есть - это значит искаропки или прикручивается за разумное (минута .. час)время.

[identity profile] nivanych.livejournal.com 2010-08-25 06:07 pm (UTC)(link)
;-) По-моему, моих смайлегов вполне достаточно.

[identity profile] aamonster.livejournal.com 2010-08-25 06:18 pm (UTC)(link)
1. Угу, костыль. Но полезный.

4. Удобная - ибо отродясь работает. Это как вывод в консоль. Не надо fopen/fclose прикручивать на каждый чих, если не подключен отладчик - практически нет накладных расходов. Впрочем, понятно, что уж это-то прикрутить не проблема.

Минута-час - это час на всё или по часу на каждый чих и реально это несколько недель? От распаковки архива с emacs до компиляции, запуска и отладки приложения на win 32 api? (с мелкомягкими хидерами из комплекта Platform SDK).
Поиск по сети на предмет емакса как замены visual studio даёт кучу упоминаний Xrefactory (платного) и практически единогласное заключение, что студия удобней.

[identity profile] aamonster.livejournal.com 2010-08-25 06:24 pm (UTC)(link)
Не понимаю. Если студия умудряется распарсивать C++ файлы со всей их контекстно-зависимой грамматикой - то уж значительно более осмысленные cmake-файлы тоже могла бы.

А если невозможно - то "нет ножек - нет и печенья".

[identity profile] zamotivator.livejournal.com 2010-08-25 06:28 pm (UTC)(link)
Дело не в этом.
CMake более высокоуровневый язык. В нём можно задать правила вида "для всех подпроектов исключая тех, названия которых начинается с library_ включить опцию компилятора такую-то".
Как вы это сделаете в студии?
Будете тыкать каждый проект по отдельности.
Таким образом, изменения студийных проектов не будут однозначно отображаться на структуру проектов в CMake.

Всё равно что после редактирование asm'ского кода вы получили автоматически отредактированный кусок плюсов. Сделать-то можно - как asm вставку эти правки включить в исходный плюсовый код, ну а смысл сего действа?
Edited 2010-08-25 18:28 (UTC)

Page 2 of 3