Community
Participate
Working Groups
terminate one execute file when debugging it on eclipse, then modify and reload it with "Stop at main" does not work when launching the execute file for the second time. I found when reload the execute file, the inode value updates in read_memory_map_item() function. but the "files" global variable in tcf_elf.c file still hold old inode value, then it fail in function elf_open_memory_region_file(). 1250 if (file->error == NULL) { 1251 if (r->dev != 0 && file->dev != r->dev) return NULL; 1252 if (r->ino != 0 && file->ino != r->ino) return NULL; 1253 return file; 1254 } at line 1252 the r->ino is new inode value, but the file->ino hold the old inode value. the issue can not reproduce on Windows.
when debug a execute with "stop at main". for the first time, it works well; for the second time, it doesn't work; for the third time, it works again; then does not work again...... so it works once every other time
I have implemented more aggressive invalidation of ELF cache. In particular, the agent now checks for invalid cache entries when Linux process is started. Fixed. Thanks!