Hello,
POASM may create invalid debugging info.
Here's a small test case, to be assembled with: poasm -Zi test.asm
.386
.model flat,stdcall
PS1 typedef ptr S1
S1 struct
next PS1 ?
data dd ?
S1 ends
.code
start proc
ret
start endp
end start
Problem: the debugging information that is written is "incomplete" - a reference to an undefined type index is found in the types segment.
If the code is slightly extended, the problem becomes worse. Again, use: poasm -Zi test.asm
.386
.model flat,stdcall
PS1 typedef ptr S1
S1 struct
next PS1 ?
data dd ?
S1 ends
.code
start proc
local v:S1
mov eax,v.next
ret
start endp
end start
Now poasm does silently terminate, no object module is written ( and if an old version of the object module existed when poasm starts, it is not deleted ).
----------------------------------------------------------------------
Another issue, with POLINK ( not exactly a bug, but a possible improvement ): if POLINK finds codeview debugging info that it cannot handle properly ( for example, CV8 ), it does a fatal exit. It would be far better if it just skips this debug info.
The module with the "invalid" debug info might be in a "third party" library (MS), so you can't just recompile it without debug info.