LINUX.ORG.RU

как отладить прогу на языке D?


0

0

использую ubuntu 7.04 gcc 4.1.2 gdc 0.22 gdb 6.6

---------------

gdc -g HelloWorld.d

gdb ./a.out

This GDB was configured as "i486-linux-gnu"... Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". (gdb) break main Breakpoint 1 at 0x805bbde (gdb) run Starting program: /home/leonid/workspace/d/HelloWorld/a.out [Thread debugging using libthread_db enabled] [New Thread -1210038592 (LWP 15246)] [Switching to Thread -1210038592 (LWP 15246)]

Breakpoint 1, 0x0805bbde in main () (gdb) s Single stepping until exit from function main, which has no line number information. Hello, World! 0xb7e1aebc in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6 (gdb)

у кого-нибудь получалось отладить программу, скомпилированную gdc?

1) отладчик - сакс. при грамотном проектировании программы отладчик не нужен. + сам язык D разрабатывался с целью облегчить программирование.

2) D - сакс, потому что вместо облегчения программирования только добавляет лишние сущности.

3) жди поддержки в gdb. а она, я думаю, не появитс никогда.

anonymous
()
Ответ на: комментарий от anonymous

>при грамотном проектировании программы отладчик не нужен.

Корку ты тоже "грамотно проектируешь"? ;)

anonymous
()
Ответ на: комментарий от anonymous

>1) отладчик - сакс. при грамотном проектировании программы отладчик не нужен. + сам язык D разрабатывался с целью облегчить программирование.

да, но с отладчиком как-то сподручней. особенно если что-то не получается.

>2) D - сакс, потому что вместо облегчения программирования только добавляет лишние сущности.

ну.. какое отношение это имеет к теме вопроса?

3) жди поддержки в gdb. а она, я думаю, не появитс никогда.

вроде как есть патчи, но у меня не работают. :(

jet_bird
() автор топика
Ответ на: комментарий от xonix

> Чем не устраивает Java? В плане отладки - сказка. В плане всего остального - аналогично.

Жаба отвратительна и ужасна. Лучше питон.

anonymous
()
Ответ на: комментарий от xonix

>Чем не устраивает Java? В плане отладки - сказка. В плане всего остального - аналогично.

у меня на джаве все тормозит. :( хочется удобства джавы и скорости c++. как-то так. :)

jet_bird
() автор топика

У меня с dmd всё работает. Единственное - name mangling в gdb, но как раз для этого патчи и нужны.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

>У меня с dmd всё работает. Единственное - name mangling в gdb, но как раз для этого патчи и нужны.

а dsss с dmd в linux работает? везде написано, что not tested. как ты собираешь проекты?

jet_bird
() автор топика
Ответ на: комментарий от anonymous

> Ну как же, это же модно. ;)

ДОМ-2 - тоже модна, иди сматри его :)

fmj
()
Ответ на: комментарий от jet_bird

>у меня на джаве все тормозит. :( хочется удобства джавы и скорости c++. как-то так. :)

Попробуй скомпилировать приладу Excelsior JET-ом... может быть, будет работать намного быстрее.

anonymous
()
Ответ на: комментарий от anonymous

Интересно в каком году анонимные эксперты узнают про JIT

Begemoth ★★★★★
()

Есть такая рульная штука как отладочное логгирование. Для твоего случае будет то что надо.

Сам Линус завещал забивать на долбаггеры и пользовать логгирование;-)

cvv ★★★★★
()
Ответ на: комментарий от anonymous

>А на чем лучше программировать?

смотря от задачи. попробуй Common Lisp

anonymous
()
Ответ на: комментарий от cvv

>Есть такая рульная штука как отладочное логгирование. Для твоего случае будет то что надо. Сам Линус завещал забивать на долбаггеры и пользовать логгирование;-)

Я это вовсю использую :)

jet_bird
() автор топика
Ответ на: комментарий от Legioner

>Простые проекты make-ом, сложный scons-ом. dsss не юзал.

а я не юзал scons :) попробую, почитал, что там built-in support for D.

jet_bird
() автор топика
Ответ на: комментарий от jet_bird

>у меня на джаве все тормозит. :(

Что тормозит?

anonymous
()

Люди, если желаете рулеза С-like, учите C++0x, за то время, пока стандарт обнародуется (2009-ый год), его точно успеете освоить, и будет вам нирвана, от возможностей новых C++, по сравнению с которыми D просто в пролете :)

Там например появится lambda оператор, garbage collector (останется и возможность не-gc-аллокатором выделять память), встроенная поддержка параллельных вычислений, встроенная поддержка регулярных выражений и еще куча всевозможнейших вкусностей, таких, что на D вы такого никогда не сделаете :)

P.S. Это не отменяет необходимости изучения haskell-я, каждым уважающим себя кодером :)

fmj
()
Ответ на: комментарий от fmj

> Люди, если желаете рулеза С-like, учите C++0x
С++0x выйдет через 2 года, реализуют его ещё через 3. А D есть сейчас.

> Там например появится lambda оператор
есть в D

>, garbage collector (останется и возможность не-gc-аллокатором выделять память)
есть

>, встроенная поддержка параллельных вычислений
есть

>, встроенная поддержка регулярных выражений
есть

> и еще куча всевозможнейших вкусностей
есть

> , таких, что на D вы такого никогда не сделаете :)
ну-ну :)

> P.S. Это не отменяет необходимости изучения haskell-я, каждым уважающим себя кодером :)
ага

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

>> Люди, если желаете рулеза С-like, учите C++0x

>С++0x выйдет через 2 года, реализуют его ещё через 3. А D есть сейчас.

А это правда, что D v2.0 будет несовместим с D v1.0? ;)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

1.0 устаканился, там сейчас только багфиксы.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

> есть в D

> есть

> есть

> есть

> есть

у C++ при этом есть одно маасенькое преимущество, -- это промышленный тандарт ;)

P.S. А по поводу лямбды в D не знал, можно пример кода (просто очень интересно посмотреть, как это будет смотрется), как выглядит там например вот это: (в нотации C++0x)

vector<int> v; // где-то выше обьявлен

...

transform(v.begin(), v.end(), v.begin(), <>(e) ( e * e ) );

(ну т.е. пример возведения в квадрат каждого элемента вектора).

fmj
()
Ответ на: комментарий от fmj

> у C++ при этом есть одно маасенькое преимущество, -- это промышленный тандарт ;)

это да.

> можно пример кода

примерно так (точно сказать не могу, компилятора под рукой нет:

transform(.., int function (int e) {return e*e;});

как такой же type inference сделать - не знаю.

ещё можно юзать переменные из текущего контекста, но только пока стек не разрушен.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

к слову, ради тщательнейшего изучения языка я решил попереводить немного документации к D на русский язык, кажется, еще 1 товарищ меня поддержал, пока только то, что нравится: там пока что одна статья (ленивые вычисления функций-аргументов), но скоро будет про Tuples, а потом как время позволит. Для всего этого мы сделали Wiki, хочется к тому же собрать различные трюки проектирования/программирования на D, туториалы по установке компилятора и библиотек, про ситуацию с Phobos/Tango и т.п., т.е. т.н. базу знаний в этих областях.

А вот ссылки:

статья "Ленивые вычисления функций-аргументов": http://notvodka.pbwiki.com/D+Language+LazyEvaluationOfFunctionArgs

оглавление: http://notvodka.pbwiki.com/D+Language

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

jet_bird
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.