nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 03:41



Reply to topic  [ 36 posts ]  Go to page Previous  1, 2, 3
Недосимулятр 8080 со встроенными asm/disasm/debugger 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
а как же смотреть регистры и дампить память?...

P.S. gdb наверное всё-таки не для восьмибиток, тем более виртуальных :roll:

_________________
:dj: https://mastodon.social/@Shaos


31 Aug 2012 05:59
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Lavr wrote:
Shaos сказал же - легче написать всё сначала, чем разбираться в чужом коде.

Ну я сказал не совсем так ;)

Но сути-то я не испортил! :wink:

_________________
iLavr


31 Aug 2012 09:39
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Shaos wrote:
а как же смотреть регистры и дампить память?...

Как это выглядит в протоколе remote-target я не скажу, потому что мне никогда в голову не приходило попробовать приконнектится telnet'ом к удалённому gdb. Но в command-line можно использовать команду info registers или что-нибудь вида "print $rax". А когда мне надо посмотреть дамп памяти, я обычно делаю это командой print с приведениями типов, примерно так: "p/x (*(unsigned*)$rsp)@256". p -- это сокращение команды print, /x говорит о том, что я хочу видеть числа в hex'е, в скобочках стоит чисто C'шное выражение, преобразующее число из $rsp к типу unsigned*, и затем разадресовывающее получившийся адрес, а @256 говорит о том, сколько элементов надо вывести.
Ко всему этому в gdb есть команды stepi и nexti позволяющие трейсить программу по одной инструкции. И, наконец, gdb'шная команда break принимает в качестве аргумента адрес. Чуть не забыл, есть ещё команда disassemble, которая может кусок памяти перевести в ассемблерные мнемоники. То есть в gdb есть всё, чтобы отлаживать голый бинарь без какой-либо отладочной информации.
Не скрою, что gdb весьма неудобен для отладки при отсутствии отладочной информации, если при source-level отладке gdb вполне можно использовать через командную строку, то при "бинарной" отладке уже всё становится существенно хуже.
Но это же нам не очень важно: планов приделывать отладчик с command-line интерфейсом никто не строит. Нужен фронтенд, и есть у меня подозрение, что написать фронтенд к gdb не сильно-то и сложнее, чем непосредственно к симулятору. Но в случае с сорц-левел отладкой, этот фронтенд будет иметь массу вкусностей, типа вывода думпа памяти не в хексах, а примерно в таком виде:
Code:
(struct my_string*){
    {.len = 10, str = "hello"},
    {.len = -1, str = "world"},
    {.len = 1234, str = NULL},
}
И для этого фронтенду вовсе не обязательно понимать, что такое C'шная структура, и каковы особенности вывода на экран значения типа char*, потому что этим всем может заниматься gdb, а фронтенду останется лишь получать готовый результат в текстовом виде.

Quote:
P.S. gdb наверное всё-таки не для восьмибиток, тем более виртуальных :roll:

C восьмибитным AVR он справляется. С виртуальным. С simulavr.


01 Sep 2012 06:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
С авром атмел хорошо поработал для популяризации - тут тебе и gcc, и gdb, но мне пики больше по душе ;)

P.S. Всё-таки симулятор с нуля писать несколько проще будет :)

_________________
:dj: https://mastodon.social/@Shaos


01 Sep 2012 17:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Lavr wrote:
Shaos wrote:
Ввиду того, что я не большой любитель винды, а также в связи с тем, что я устал от постоянных гонок разных производителей юзерских интерфейсов для линуха, предлагаю весь юзер-интерфейс делать самостоятельно - на уровне пикселей.
Ну это как-то уж слишком... слишком колхозно ещё и интерфейсы рисовать... :-?
Так что чтобы иметь поддержанными и линух, и дос, и твою винду номер 98, придётся всё городить самостоятельно...

Ну тогда - чур я поддерживаю ДОС-версию... :lol:

Image

Только в чём тогда смысл совместимости? У меня этот Вендоподобный интерфейс
"на уровне пикслей" вообще под QBasic был написан... :wink:

_________________
iLavr


02 Sep 2012 01:08
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Shaos wrote:
Есть вроде достаточно стабильный порт GTK+ под винду (см. GIMP, который им пользуется и который кстати и подарил миру GTK+), однако:
Quote:
You will need the GLib, cairo, Pango, ATK, gdk-pixbuf and GTK+ developer packages to build software against GTK+. To run GTK+ programs you will also need the gettext-runtime, fontconfig, freetype, expat, libpng and zlib packages.
....
The current GTK+ stack uses APIs that are available only on Windows 2000 or later. Long obsolete versions of GTK+ did run on Win9x and NT 4, too.

Так что чтобы иметь поддержанными и линух, и дос, и твою винду номер 98, придётся всё городить самостоятельно...
Только сейчас обратил внимание. По-ходу дела gtk забросил поддержку win9x в версии 2.6. Почему-то думал что они сделали это с переходом на 3.x, и искренне верил, что можно собрать всё на gtk+-2.24, который вероятно повторит историю gtk+-1.2, то есть будет поддерживаться майнтейнерами дистрибутивов долгие годы.
Экая факамаза...


02 Sep 2012 07:42
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 36 posts ]  Go to page Previous  1, 2, 3

Who is online

Users browsing this forum: No registered users and 20 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.