When I run an application BoundsChecker pops up an event window. When a new thread gets created/destroyed it dispalys "CREATE
THREAD"/"EXIT_THREAD" respectively. However, when I create a mutex and acquire/release it, no informaion gets displayed. Can somebody tell me why ?
We simply do not choose to provide this information in the transcript window dynamically as mutexes are created (same with Critical Sections,Semaphores, and other kernel objects), but this does not mean we do not provide it at all.
To see your CreateMutex calls:
1. Load your .exe into BC (I will use the standalone BC app as the example but this works the same way via the IDE) and click on the Event Reporting tab. Click on "Collect and report program event data", then run your app (NOTE: this will use up more disk space then a normal run).
2. When the app exits, go to the View menu and click on "Specific Events..." and choose API calls in the group of checkboxes you see here. Then close the dialog.
3. Go to the Edit menu and click Find... To the right of the edit box in the dialog that pops up click on the little tab with a triangle pointing to the right. On the menu that pops up choose "API and OLE method call". This will put a \<bc_call>\ entry in the edit box; this simply allows the query to run faster.
4. Type in CreateMutex (NO SPACES ALLOWED AFTER THE \<bc_call>\ ).
5. Click on the Find Next button and you will see your call to CreateMutex. As a bonus, you will also see source code in the code window where the call was made and also the calls arguments listed on the right side.