I am look at the functions of my compiled application via «nm» — I need to find an address to set a breakpoint to the «send()» function. The problem is that this function accordingly to «nm»'s output have VMA equal to zero, and this address won't be changed in future, as shown by «A» mark:

00000000 A _send@16

I wonder, what could this meant? Where's actually the send() will be mapped? A note that could be useful: the binary is a PE application compiled with MinGW.

  • Were you ever able to figure out what this means? I have a 3rd party library that is full of functions with 0x0 addresses. My assumption is that these are weak symbols, included but not usable. – Joey Carson Feb 10 '15 at 20:42

Just to update, check this out. The functions with address 0 should just be the address 0 from the original object file that the function was defined in. The library I'm working with happens to define many functions in separate files, therefore many of the important ones appear to have 0x0 as their address. If you add -o to the command line, it should read out the original object file name for each symbol.


| improve this answer | |
  • Well, he said I have never seen multiple symbols referencing the same part of a section before. But thank you anyway; I leaved a comment there, perhaps he could know something about it for now — the answer dated by 2009y. – Hi-Angel Feb 11 '15 at 4:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.