NO

Author Topic: POASM error related to CodeView debugging info  (Read 2248 times)

japheth

  • Guest
POASM error related to CodeView debugging info
« on: January 11, 2013, 10:25:24 AM »

Hello,

POASM may create invalid debugging info.

Here's a small test case, to be assembled with: poasm -Zi test.asm

Code: [Select]
.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

Code: [Select]
.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.