Author Topic: Symbols mapped to non-existing object files  (Read 307 times)

jj2007

  • Member
  • *****
  • Posts: 7552
  • Assembler is fun ;-)
    • MasmBasic
Symbols mapped to non-existing object files
« on: April 29, 2017, 10:00:02 AM »
When I build a simple hello world, e.g. from the help file that appears during MasmBasic installation, there will be also a *.map file that contains inter alia such stuff:
Code: [Select]
0001:000000c6       _FreeLibrary@4             004010c6 f   kernel32:kernel32.dll
0001:000000cc       _ExitProcess@4             004010cc f   kernel32:kernel32.dll
0001:000000e0       _MbBufferGet@0             004010e0 f   MasmBasic:libtmpAK.obj
0001:000000f2       _MbBufferFix@0             004010f2 f   MasmBasic:libtmpAK.obj
0001:0000012a       _MbGetSlotPointer@0        0040112a f   MasmBasic:libtmpAK.obj

Now I could imagine uses for the ExitProcess@4 004010cc f   kernel32:kernel32.dll entry, but after building the library, there is definitely no longer a libtmpAK.obj hanging around, so this info must be completely useless.

Can anybody shed light on this?
a) why do I sometimes get a *.map, but more often not?
b) why is that link to non-existing temporary object files there?
c) can the info be stripped with some linker option?
d) which option suppresses the generation of the *.map file?

Thanks.

newrobert

  • Regular Member
  • *
  • Posts: 38
Re: Symbols mapped to non-existing object files
« Reply #1 on: April 29, 2017, 12:28:31 PM »
after you delete map file, there should not map file, it's old file;

TWell

  • Member
  • ****
  • Posts: 748
Re: Symbols mapped to non-existing object files
« Reply #2 on: April 29, 2017, 05:04:00 PM »
_MbBufferGet@0 is in libtmpAK.obj in MasmBasic.lib ?

those -map or -debug options are somewhere in command line or in object directives, even leftover in some library.

EDIT: testing with another linker, like polink.exe eliminate some linker specific features.

« Last Edit: April 29, 2017, 07:26:46 PM by TWell »

jj2007

  • Member
  • *****
  • Posts: 7552
  • Assembler is fun ;-)
    • MasmBasic
Re: Symbols mapped to non-existing object files
« Reply #3 on: April 29, 2017, 07:05:44 PM »
> _MbBufferGet@0 is in libtmpAK.obj in MasmBasic.lib ?
Sure they are.

> those -map or -debug options are somewhere in command line or in object directives, even leftover in some library.
I don't use these options anywhere.

I have spent hours on VS Linking and didn't find anything. Fact is that these references are useless because the obj files are gone...

newrobert

  • Regular Member
  • *
  • Posts: 38
Re: Symbols mapped to non-existing object files
« Reply #4 on: April 30, 2017, 07:57:33 AM »
try to recompile or rebuild;

jj2007

  • Member
  • *****
  • Posts: 7552
  • Assembler is fun ;-)
    • MasmBasic
Re: Symbols mapped to non-existing object files
« Reply #5 on: April 30, 2017, 09:54:41 AM »
This is not C++, my friend. Assembler sources are always rebuilt.