Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
03583 Core Minor Have not tried Dec 14, 2009, 04:16 Dec 21, 2009, 17:21
Tester Firewave View Status Public Platform MAME (Self-compiled)
Assigned To Firewave Resolution Fixed OS Windows XP (64-bit)
Status [?] Resolved Driver
Version 0.135u3 Fixed in Version 0.135u4 Build Debug
Fixed in Git Commit Github Pull Request #
Summary 03583: Windows Debug: Stack crawl is not generated anymore
Description Older version of MAME would add a stack crawl to the exception message when a .map files exists, that looked like this:

Exception at EIP=00CB2CAB (tilemap_draw_primask+0x054e): INTEGER DIVIDE BY ZERO
EAX=00000200 EBX=0EB31C00 ECX=00000200 EDX=00000000
ESI=0EB01EF8 EDI=0000FF02 EBP=0022D418 ESP=0022D370
Stack crawl:
exception-> 00CB2CAB (tilemap_draw_primask+0x054e)
0022D41C: 00CB2F80 (tilemap_draw+0x0035)
0022D43C: 005458A7 (deco16_tilemap_2_draw+0x005b)
0022D48C: 00558E16 (video_update_simpl156+0x0086)
0022D4FC: 00D16186 (video_frame_update+0x16c6)
0022D86C: 00CFBB21 (mame_timer_set_global_time+0x045d)
0022D87C: 00CB4A18 (activecpu_get_info_int+0x0038)
0022D8AC: 00CB6B33 (cpunum_execute+0x00f7)
0022DFB0: 00558D90 (video_update_simpl156+0x0000)
0022FDDC: 01379495 (__main+0x00a5)

This has not be working for a while and it appears the problem is the .map format. MAME reads it like this in winmain.c:
if (sscanf(line, ".text           0x%08x 0x%x", base, size) == 2)

but the whitespaces between the base and the size part are more than one can can differ in amount. Here's some examples from the .map file:
.text           0x00401000  0x1167a00
 .text          0x0041b1e0     0x1660 obj/windows/mameud/mame/aristocr.a(archimds.o)
 .text          0x00427440       0xa0 obj/windows/mameud/mame/atari.a(subs.o)
Steps To Reproduce
Additional Information
Github Commit
Regression Version
Affected Sets / Systems Windows Debug
Attached Files
There are no relationship linked to this issue.
User avatar
Senior Tester
Dec 15, 2009, 17:37
It's actually easier. The function always returns 0, so its results are ignored.