Hi, I am writing a tool that is trying to execute an arbitrary function in the client and report the program state immediately after finishing. I have been able to get the client to jump to the function I want and execute. However to get that to work, I have registered a function via VG_(track_pre_thread_ll_create) that calls VG_(fork), after which only the child process continues to execute the client code. The parent waits on the child to exit via VG_(waitpid), and reads the program state reported by the child on a pipe. The parent then waits for an external process to issue the command to execute the same function again. If the forks and the child runs the same function, the child process hangs while trying to acquire the BigLock. I was able to solve the issue by having my child manually call VG_(release_BigLock_LL)(NULL) before VG_(exit)().
This seems like a bug, as I would assume the VG_(exit) would release any held locks, however I am not sure if there is a reason for not doing this. If it is a bug, I would be happy to make a bug report for this, along with a minimal example. -- Derrick McKee Phone: (703) 957-9362 Email: derrick.mc...@gmail.com _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users