title: How to map ARM Cortex M3 PC/LR address to source line?
body: <p>We are working on STM32F103(ARM Cortex M3) chip and compile our project with uVersion(ARM-MDK compiler). When crash happened, we saved the PC and LR registers. After that, we'd like to map addresses saved in PC and LR registers to source code lines for human reading by writing certain scripts. I read this <a href="https://stackoverflow.com/questions/17761328/what-are-axf-files">What are .axf files?</a>, which says axf contains such information. But I don't know how to utilize it.
  Thanks a lot. </p>
  
  <p><strong>[update 1]<br></strong>
  Today I tried the fromelf.exe which can dump some debug useful information(<strong>fromelf.exe --text -g E:\proj_keil\keil_output\test.axf</strong>), 
  for example: </p>
  
  <pre><code>008f5d: SPECIAL(0, 1) : 13 080043cc: ..\init\main.c:23.5 
  008f5e: DW_LNS_negate_stmt : 06 
  008f5f: SPECIAL(1, 2) : 1a 080043d0: ..\init\main.c:24.5 [
  </code></pre>
  
  <p>When I search the crashed PC address(0x080043d0), I can find its corresponding source line, though I did not find the LR address's source line for this crash.</p>
  
  <p>So can I use <strong>fromelf.exe</strong> to solve my problem?</p>