LINUX.ORG.RU

Создание приложений, отладка и тп.


0

0

Привет. Установил Убунту. Оказалось PE-формат исполняемых файлов чуждый для этой оси, как следствие никакой софт под неё не идёт. 1. Нужен компилятор. Для Windows я юзаю Masm32, впрочем не важно, какой компилятор, главное линкер, который собирает обьектные файлы в исполняемый модуль. Так вот, чем собирать приложения и драйвера ? Само сабой такой линкер не будет занимать десятки мегабайт. 2. Разумеется второй необходимый инструмент это отладчик. Под виндоз использую олю, сисер, на крайний случай пойдёт виндбг. Чем отлаживать приложения и драйвера(разумеется машинный код) в линуксе ? Нужен нормальный отладчик, я ведь не собираюсь трассировать код прописывая команды в консоле и тп., нормальный с хорошим графическим интерфейсом, который весит не сотни мб отладчик существует ? Если таких инструментов нет, то зачем такая ось вообще нужна.. Далее необходимы отладочные символы. Не помешает утилита типа Rku.. Надеюсь на помощь, спасибо.


Ответ на: комментарий от jtootf

Всмысле ? Как вобще код делоть, запускать и отлаживать ? Не ну я догадываюсь что вы студией ядро собираете из по виды :D У меня тока студии нет, дайте хоть линкера название.

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

>впрочем не важно, какой компилятор, главное линкер

Сейчас вся сила - в гемоглобине. Деревня :)

anonymous
()

> Если таких инструментов нет, то зачем такая ось вообще нужна..

Вы же программист, напишите нужный вам инструментарий. Пусть он будет красивый, удобный, быстрый, и не будет весить 10Мб.

А вообще по теме - gdb (ну или морды к нему), ddd, total view.
Практически любой IDE умеет использовать gdb.

andreyu ★★★★★
()

Говорят, пища тролля уныла...

По теме - ещё забыли 'make' и 'ld' порекомендовать. Ещё есть такая неплохая программа man (например, команда "man gcc"...).

Имхо, неплохо бы поближе познакомиться с самой системой, прежде чем писать под неё нормальный софт.

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

Спасибо всем. Вы понимаете я всегда под виндой работал. Убунту я вчера тока поставил и с данной системой вобще не знаком.

> Имхо, неплохо бы поближе познакомиться с самой системой, прежде чем писать под неё нормальный софт.

Чтобы познакомиться с системой мне нужно множество раз увидеть путь начиная от высокоуровневых юзермодных апи, шлюз, обработку в ядре и возврат, а чтоб это увидеть нужен отладчик. Сурцы не всегда помочь могут. Буду открытым. Я не пишу под виндоз софт. Хотя я знаю эту систему на уровне ядра практически досконально, никогда создание софта меня не интересовало. Разумеется что перед тем как создать данный топик я спрашивал у гугла. Ничего нормальнолго он не нашёл.

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

Один знающий товарищ скозал что нет нормального ядерного отладчика. Юзермодный скозали что нормальный DDD, окей посмотрю. Насчёт сборки. Никакой конпилятор синтакс масма не держит вроде, ну это не столь важно, походу насм может конпилить под линукс ?

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

> Установил Убунту. Оказалось PE-формат исполняемых файлов чуждый для этой оси, как следствие никакой софт под неё не идёт.

Софт бывает не только в PE-формате, поэтому утверждение ложно.

> 1. Нужен компилятор. Для Windows я юзаю Masm32

Masm32 это не компилятор а ассемблер.

> Так вот, чем собирать приложения

Самый распространённый - GNU Linker.

> Само сабой такой линкер не будет занимать десятки мегабайт.

Само собой.

> 2. Разумеется второй необходимый инструмент это отладчик. Под виндоз использую олю, сисер, на крайний случай пойдёт виндбг. Чем отлаживать приложения и драйвера(разумеется машинный код) в линуксе ?

Для приложений gdb.

> Нужен нормальный отладчик, я ведь не собираюсь трассировать код прописывая команды в консоле и тп., нормальный с хорошим графическим интерфейсом, который весит не сотни мб отладчик существует ?

Любой фронтенд к gdb. Мне нравится интеграция с gdb в емаксе.

> Далее необходимы отладочные символы.

Не совсем понятно, что нужно. gcc -g добавляет отладочную информацию в объектный файл. nm позволяет посмотреть символы.

> Не помешает утилита типа Rku..

На данном форуме наверное лучше писать конкретно - что нужно. Мне rku ничего не говорит.

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

> Masm32 это не компилятор а ассемблер.

Это компилятор интеловского ассемблера.

> Самый распространённый - GNU Linker.

Спасибо, попробую.

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

Странно, что ещё никто не предложил принять большую дозу любого препарата из группы цианидов.

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

блять, ну доки почитай а не на форуме гунди. тут тебе никто азы объяснять не будет.

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

Тогда стоимость тебя, как линуксового девелопера, стремится к нулю.

mv ★★★★★
()

Привет. Да просто тут всё. PE-формат исполняемых файлов чуждый для этой оси, поэтому используй ELF. Не пользуйся a.out, он устарел давно уже. 1. Нужен компилятор. Для Windows я юзаю Masm32, тут используй nasm или yasm. впрочем не важно, какой компилятор, главное линкер. можешь использовать ld и libtool из GNU, но он не шибко быстрый. Все риальные пацаны юзают gold и dolt, правда они не все плафтормы тянут, так что для девелопинга, в релизе можно и GNUсными средствами собрать. 2. Зря не собираешься осилить команды в консоле, ведь его можно скриптовать, и выстроить оболочку вроде DDD с деревьями и структурами. Есть LINICE, есть ZeroBUGS. Некоторые Kdbg пользуются. Вроде оли есть edebugger, есть что-то похожее на qt. Посмотри тут http://ubuntuforums.org/archive/index.php/t-608123.html . Для драйверов можно засунуть kdb в ядро, но проще поставить Xen, VmWare, или QEMU (прочитай про отладку в QEMU, есть универовские курсы "напиши свою ОС в QEMU" с отладкой), и подсоединиться удалённым gdb по сети. Но отладка это вчерашний день, настоящие пацаны не сидят в отладчике, не правят в мониторе бинарники, и т.п. Тут ведь исходники на всё почти есть. Можно писать так, чтобы отладка понадобилась крайне редко. Можно книжку прочитать про то, как тестировать, например, классическую "Why Programs Fail?" про Delta Debugging, Failure-inducing sets & failure-inducing changes (спроси об этом гугл или википедию).
С отладочными символами всё просто. gcc -g , и будет тебе не ELF-формат, а DWARF, толстый , с отладочными символами. Командой в gdb сможешь загрузить, другой командой вроде list исходник показать. Вот тебе и символы. Если хочешь в духе виндовз pdb-файлов, читай сюда: http://www.zero-bugs.com/2.0/advanced.html .

про Rku и хуки -- нет тут такого почти, читай про LD_PRELOAD, LD_LIBRARY_PATH, загружаемые модули ядра и спецрассылки.

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

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

сколько лет ты его трассировать собрался? Не проще ли прочитать аналогичную Lion's book http://en.wikipedia.org/wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_So... на llkm, про линукс-ядро, чтобы представлять себе картину в целом? Для старого ядра такая книжка точно была. И она устарела не полностью. Для нового проще сверяться по ней с исходниками, что изменилось.

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

> Никакой конпилятор синтакс масма не держит вроде, ну это не столь важно, походу насм может конпилить под линукс ?

вообще в линуксе не очень любят на ассемблере писать. Тут смотри Linux Assembly book, http://asm.sourceforge.net/, туториалы. Но не любят они это дело, факт -- под x86 ABI один, под x86-64 другой, кто-то вообще кросскомпилятором на ARMы собирает. А так вообще прочитай про a-linux http://asm.sourceforge.net/asmutils.html и init на асме (в рассылке asm.sf.net было)

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

> Окей, скачал я ddd-3.3.11, gdb-6.6 и есчо чтото отсюда http://linux.wareseeker.com Как это запустить ?

Там триал ломать надо. Оттрасируй до места проверки ключа, кейгенов нормальных нету. Но ты же сам в теме, там же дело плёвое.

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

про триал это я пошутил, если чо. Обычно всё ставится и запускается, как обычно это в линуксе делается. Пакетным менеджером ставится, из командной строки запускается.

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