#199 new
Peter Johnson

list file wishes

Reported by Peter Johnson | June 25th, 2011 @ 07:52 PM

Originally posted on Trac by Martin Sander Martin@MartinSander.de
Original Trac Ticket


I have a number of observations and wishes concerning list files:

If an error occurs during assembling, no list file is generated, even if requested. This is very impractical, as a list file appears to be the best way to track errors in macros: An error inside a macro is reported for the calling code line of the assembled file. Sometimes, the macro name and line is indicated as well. More often, however, this information is missing. In order to track down errors in larger macros, this additional information would be highly appreciated!
There should me an option like .list_conditionals to show the line

before the following code. Right now, only line numbers are given, and it is possible only by comparing the source code with the list file to find out which branch has been taken.
Additionally, in conjunction with "wish #1", one could easily track down an %if / %else / %endif mismatch.

For error analysis in macros, it would be good to be able to show %assign statements in the list file, let's say by having an option .list_assign.
Values in %if, %define, EQU statements are listed as the sometimes rather complex expressions they are defined as. It would be nice to have the actual value added in braces afterwards.

I would suggest braces, because both normal and square brackets already have specific meanings.
E.g., the statement

Next64Byte EQU ((-64) >> lbWW)

is cited in the list file just like that (lbWW is a constant defined somewhere else by an EQU statement to be equal to 2). It could be very valuable to have this line read instead:

Next64Byte EQU ((-64) >> lbWW {2}) {-16}

Likewise, if by a series of previous conditional EQU statements, the constants A,B,C,D are assigned values, the following list file line could be generated:

%if (A+B+C) > D

In order to track down a suspected problem arising from this expression, one would have to search the list file for the valid EQU statements of each of the constants, then add them up manually and evaluate the expression. The list file could greatly simplify that tastk by writing:

%if (A+B+C) > 2D {(3066+4077+5088) {12231} > 25011 {10022}): TRUE}

As you can see from this example, to be useful, the braces would have to be nested whenever the %if condition consists of an arithmetic comparison of parameters to be evaluated by the parser.

The list file sometimes contains a lot of unnecessary white space and line number information.

Consider the following situation:
In the included file cb.a, I define a number of macros. In the list file, I can read then:

38 %line 7+1 cb.a
40 %line 13+1 cb.a
42 %line 19+1 cb.a
44 %line 40+1 cb.a
46 %line 71+1 cb.a
48 %line 88+1 cb.a
50 %line 105+1 cb.a
52 %line 146+1 cb.a

It does not make a difference here, if the macros contain the .nolist specifier or not. Now, this is no useful information and should just be left away.

Trac Attachments

Trac Comments

Comments and changes to this ticket

  • Robertams

    Robertams August 14th, 2018 @ 08:12 PM

    Yes, its right that it's impractical and difficult to understand the logic behind it. So, to have all information about list file wishes, must take a look of some points which almost at the end of this post. Without it, You can't understand it. However, I need a site for writing services reviews but hope this list help to resolve a lot of errors.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

The Yasm Modular Assembler Project

Shared Ticket Bins

People watching this ticket