flat assembler
Message board for the users of flat assembler.

Index > Windows > Debuging Windows applications using current Fresh features

Thread Post new topic Reply to topic

Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
Well, the one of the biggest problems in FASM programming is lack of debug information in compiled executables. Perhaps, this is not a big problem for advanced FASM users, but for beginers it can be confusing and may kill the plesure of work. Smile
So, Fresh IDE is intended to fix this problem with its source level debuger, but unfortunately it is not finished yet and is almost useless.
Nevertheless, Fresh already contains some features, that can help debuging applications. I use them all the time, but maybe not everyone knows about these features, so I decided to write short guide about "Fresh debuging features". Note, that these features will be improved in next releases, so this "guide' should be considered temporary.

Here, I am writing about the latest "work" version of Fresh.

1. Source level debuger: there is big lack of features. Although, if you place some "int3" instruction somewhere in your program and run it with "F9" = mainmenu("Debug"|"Run"), the program will stop at the breakpoint and you can trace it instruction by instruction. The same is for any exception raised in your code - you will be able to look at the exact place in the source where exception occurs.
Unfortunately in this mode you can only see the source and the registers. More in next releases... Smile

2. Function "goto address" - Ctrl+G or mainmenu(Debug|Goto address).
This function ask you for address and tryes to find the source line with this address. Very usefull when working with external debuger.

3. You can run program directly in external debuger with Shift+F8 or mainmenu(Debug|External debuger). Of cource, prior, you have to set proper path to external debuger in mainmenu(Options|IDE options) .

4. Labels explorer: after compilation, show all used symbols, constants, structures, etc. with its values. Call it from mainmenu(Project|Labels explorer). This is the feature that can help you to know what address have this or that label, constant, etc.

I hope, this small part of future Fresh debuging functions will help you to debug your FASM applications more easy.
In the next releases, we are intended to improve source level debuger and other debuging tools in Fresh to the very high level, able to replace any external tool.

Post 09 Aug 2004, 20:24
View user's profile Send private message Visit poster's website ICQ Number Reply with quote

Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
What I don't get is that debuggers can run only code that does "nothing". I
mean it doesn't alter the display(put any output to console or draw a dialog
or messagebox). If anything like that happens, the debugger usually stalls
or outputs wierd errors, why is that?
As an example I tried Windows's own calc.exe, and if the debugger runs, no
action is going on at the dialog, but when hitting run and starting to calculate
debugger doesn't know what to do...and exits
It's hard to debug visual applications when only possible way is to debug
registers and memory. I've even gone so far that I drew my app in ASCII to
the memory, how fun is that?
Post 12 Aug 2004, 14:40
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  

< Last Thread | Next Thread >
Forum Rules:
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 vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.