SX-Aurora / Vftrace

GNU General Public License v3.0
10 stars 2 forks source link

Regions are not precisely traced #20

Closed SpinTensor closed 4 years ago

SpinTensor commented 4 years ago

Although VFTR_REGIONS_PRECISE is exported some regions are skipped during runtime. No region is marked precise in the logfile. The regions, which are trace are marked precise in the vfd.

SpinTensor commented 4 years ago

Fixed. The problem was not that they were not precisely traced, but that the regions were not considered to be new if constructs like this were used:

   for (int ireg=1; ireg<=nreg; ireg++) {
      char reg_name[32];
      sprintf(reg_name, "user-region-%1d", ireg);
      vftrace_region_begin(reg_name);
      vftrace_region_end(reg_name);
   }

The constructed region all have the same address, thus they were not considered new, but the call count of the first region with the address was increased. Now in order to be considered the same function the address as well as the name has to be identical. Changes are in the branch fix_precise_regions and will be merged after review.