This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What means {CvtB} in code coverage module/function list

In the code coverage module/function list a large number of entries appear that do not directly match any functions in my code.
The entries starting with 'COM' followed by a four digit hexadecimal number seem to be related to common code that results from the optimizer operations.
In the coverage output for a given file a number of entries labeled {CvtB} may appear that relate to a large number of instructions:

\\pafs\DETECTOR\{CvtB} - 0% of 12 instructions executed
\\pafs\DETECTOR\{CvtB} - 45% of 91 instructions executed
    4 condjump(s) not fully executed
\\pafs\DETECTOR\{CvtB} - 0% of 1 instructions executed
\\pafs\DETECTOR\COM000D - 100% of 13 instructions executed
\\pafs\DETECTOR\INITDETECTOR - 100% of 11 instructions executed
\\pafs\DETECTOR\SETSTIM - 94% of 19 instructions executed
    1 condjump(s) not fully executed
\\pafs\DETECTOR\GETEVENTCOUNT - 100% of 21 instructions executed
Does anyone know what the abbreviation CvtB stands for or to which code these entries correspond
Regards,

Parents
  • "The entries starting with 'COM' followed by a four digit hexadecimal number seem to be related to common code that results from the optimizer operations."

    Yes, that sounds familiar.

    "Does anyone know what the abbreviation CvtB stands for or to which code these entries correspond"

    Try looking in the Linker-generated disassembly - this shows you what the code is like after the Linker has done its optimisations.
    This may help you to work out what these things are...

Reply
  • "The entries starting with 'COM' followed by a four digit hexadecimal number seem to be related to common code that results from the optimizer operations."

    Yes, that sounds familiar.

    "Does anyone know what the abbreviation CvtB stands for or to which code these entries correspond"

    Try looking in the Linker-generated disassembly - this shows you what the code is like after the Linker has done its optimisations.
    This may help you to work out what these things are...

Children
  • The following information comes from Debug Commands - Online Help (DBG51.CHM):

    Blocks named {CvtB} are created by µVision and are the result of insufficient debug information. This is normal for library modules and assembly language modules without debug information and for blocks with a valid name but no scope range.

  • Thanks for the information, it helped me a little further. I tried exploring further what the code in these sections was doing or where it exactly originated. For the example listed in my question I had three {CvtB} section in the \DETECTOR module.

    \\pafs\DETECTOR\{CvtB} - 0% of 12 instructions executed
    \\pafs\DETECTOR\{CvtB} - 45% of 91 instructions executed
        4 condjump(s) not fully executed
    \\pafs\DETECTOR\{CvtB} - 0% of 1 instructions executed
    
    With scope the corresponding address range could be found.
    Function '{CvtB}', range C:0x55EE-C:0x5601
    Function '{CvtB}', range C:0x29A8-C:0x2A27
    Function '{CvtB}', range C:0x339B-C:0x339B
    
    Looking in the linker map ('.m51' file), these ranges seem to be unrelated to my \DETECTOR module:
    TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
    CODE    55EEH     0014H     UNIT         ?RTX?TASKENT?S
    CODE    2913H     0115H     UNIT         ?C_C51STARTUP
    CODE    32E5H     00B7H     UNIT         ?C_INITSEG
    
    Anybody an idea why coverage maps these segments to the \DETECTOR module. Given this mapping I can't use the coverage output to prove sufficient coverage of my code by my test cases.