Results 1 to 6 of 6

Thread: One Mystery solved

  1. #1
    Neanderthal Dwood's Avatar
    Join Date
    Sep 2008
    Location
    Wouldn't u like to know?
    Posts
    4,189

    One Mystery solved

    Well, kinda.

    In respect to the "toolbeta.map/sapien.map" errors/debug that's thrown at us whenever we start the hek tools:

    (From an inside source at Bungie)
    I think those .map files are *memory* maps of some sort, not game-level maps. They're used for debugging the tools when the tools crash. I think. Since users don't need to debug our tools, we don't release those files
    Reply With Quote

  2. #2
    Kid in the Hall Kornman00's Avatar
    Join Date
    Sep 2006
    Location
    ◕‿◕, ┌( ಠ_ಠ)┘
    Posts
    3,130

    Re: One Mystery solved

    Yeah, those .map files that they look for are what you call "linker address maps". The linker creates them when outputing the final PE file (exe/dll).
    Reply With Quote

  3. #3
    chilango Con's Avatar
    Join Date
    Aug 2006
    Location
    Victoria, BC, Canada
    Posts
    8,397

    Re: One Mystery solved

    Oh, I think I understand. When you get a runtime error in Java it will tell you what line it happened on and in what class, and I figured it would have to create something to match parts of the compiled class to parts of the source .java to do this (although I have no clue where or when this happens). I suppose this is the equivalent for C++?
    Reply With Quote

  4. #4
    Kid in the Hall Kornman00's Avatar
    Join Date
    Sep 2006
    Location
    ◕‿◕, ┌( ಠ_ಠ)┘
    Posts
    3,130

    Re: One Mystery solved

    Windows and .NET use a PDB file for program debug data. The PDB contains TONS of debug data and code descriptions (including source file information plus line/code mappings like you're talking about). Linker address maps are just as the same suggest: linker based. The linker (in the case of C++) deals with .OBJ and .LIB files, which are basically the intermediate format of compiled code. The address maps just describe each symbol (ie, a function, variable, compiler created data, etc) in the resulting PE file. Each symbol has information like a name, the address where it's located in the PE, the source OBJ/LIB file it originated from, etc.

    If the tools shipped with their linker maps then all those times it asserts with a stack dump, it would walk the return addresses of the last few function calls that caused the instruction pointer to reach the current code at fault and try to find those addresses in the linker map. If it doesn't find the function's symbol based on the address range then it just writes ????? characters in the stack dump in debug.txt.
    Reply With Quote

  5. #5

    Re: One Mystery solved

    :O
    Reply With Quote

  6. #6
    Codesaurus Skarma's Avatar
    Join Date
    Apr 2009
    Location
    Columbus, OH
    Posts
    227

    Re: One Mystery solved

    Symbol names would be awesome to have. Too bad no one at M$ was stupid enough to release a version of Halo with a PDB file :[ Arg.
    Reply With Quote

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •