NASM - The Netwide Assembler

NASM Forum => Programming with NASM => Topic started by: 0xDEADBEEF on March 03, 2017, 10:56:40 PM

Title: Memory debugger in SASM not working? (NASM on Linux without gcc)
Post by: 0xDEADBEEF on March 03, 2017, 10:56:40 PM
Hey folks! :)

I recently started getting into ASM and the very low level instructions of a computer and I'm planning to code a basic virtual machine for my own ASM syntax for a system on a micro-controller. For this I try to study ASM coding in general, the generated binaries and how the memory behaves on runtime. I feel pretty safe with the first two parts but what I need is some more ground on the Memory side. I use SASM to write my NASM code and the ld-linker, not the default gcc.

The assembly options are:
nasm -g -f elf32 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$

And the linking options:
ld -m elf_i386 -s -o $PROGRAM$ $PROGRAM.OBJ$

Now, when I my programs in SASM, the Registers show up right, but the Memory Tab is blank and doesnt show any memory on runtime.
I didnt find any solution to it and a quick try on windows showed that it didnt work there too... Did I forget or overlook something? I would also really appreciate any suggestions for how to debug executables on linux where I can see the memory and instructions with break points and so on.

Thanks a lot! =)
Screenshot of my SASM: http://imgur.com/vjH11fb (http://imgur.com/vjH11fb)
(http://imgur.com/vjH11fb)
Title: Re: Memory debugger in SASM not working? (NASM on Linux without gcc)
Post by: Frank Kotler on March 03, 2017, 11:32:09 PM
I am not familiar with SASM, so I don't know if this has anything to do with your problem. You tell Nasm "-g" which adds debugging info (STABS is default, -F dwarf might be better). But then you tell ld "-s", which strips debugging info from the executable. It may not help to leave off the "-s", but it doesn't make much sense to ask Nasm for debugging info and then ask ld to remove it.

The "right" way to debug on Linux is to learn to use GDB. I have not done so, and consider GDB "unfriendly", so I can't help you much.

Best,
Frank

P.S. This is the debugger I use:
http://home.myfairpoint.net/fbkotler/debug-0.0.21.tgz

P.P.S. this is another alternative to GDB:
https://sourceforge.net/p/asmbug/wiki/Home/

I stress that learning to use GDB is the way to do it!

Title: Re: Memory debugger in SASM not working? (NASM on Linux without gcc)
Post by: 0xDEADBEEF on March 04, 2017, 08:34:14 PM
Thanks a lot, GDB and memory dumping was exactly what I was looking for! Its a really powerful tool!

Have a great day! :)