Why is the dll loaded in the list of Visual Studio modules?

I am currently running a bug search and need debugging in a specific DLL in the release configuration in Visual Studio 2005. At some point, I closed the solution, did some other things, and rebooted it. From this point on, my breakpoint does not hit, and I get the infamous message "No characters loaded ...". So I opened the modules window, and the DLL that I want to debug is no longer displayed in the list, so I can not load characters manually. The application behaves normally, so I am absolutely sure that the DLL MUST be loaded to perform certain functions. Of course, if I rename the dll and run the application, it no longer works, so it should also be the right DLL.

I tried installing the dll project as a startup project and the command to execute the exe application and launch the application from an external visual studio, and then connect to the process, but to no avail.

The question is, why does the DLL not appear in the list of loaded modules, although it must have been loaded? I can’t think of any other changes that I made, what could cause this, am I missing something? (Maybe something is really obvious?)

Any help appreciated!

+6
visual-studio visual-studio-2005
source share
3 answers

After transferring the project from one computer to another, there was a problem with a similar problem . I will simply explain what I discovered and how I fixed it , and you can determine if it matches your problem and solution.

  • The working computer on which I wrote the application contained the .dll file that my program referenced. After transferring the application to the home computer, the application could no longer find the DLL file that was previously referenced because it was no longer there.

  • The application is compiled and works even without a referenced resource (DLL file), because the previously compiled assembly (debug folder) contained its own copy of the DLL file and other resources. Simply put, this is an old build assembly that works, not the current application you are working on. That is why this error tends to pause the constructor window and cause an error after the application terminates.

I would like to take a look at the following:

a) In the Solution Explorer section, navigate to the Links folder and right-click the missing node link and select properties . In the properties field, pay attention to the Resource path to which the link is made. Is the resource still on this path?

b) Check the debug folder for the copy of the resource you are looking for. If the resource is there, make a copy and save it to your desktop. If it does not exist , get the file from the original source .

c) In Solution Explorer, right-click Properties and . In the menu that appears, select β€œ Resources ” at the top and left of the new window that appears, you will see β€œ Add a resource ” using the small down arrow. Press the arrow and select β€œ Add an existing file, ” and then go to the file . If you do not see this, you may need to change the file you are viewing with a small drop-down above the "open" and "Cancel" buttons. After the file is located, it should create a new folder in the solution explorer called "resources". Now the file is a permanent part of your application, and not just a link to it.

+1
source share
  • Use the process handler to check if the dll is loaded or not.

  • When connecting the process, make sure that you activate the code type "Native" and "Managed" (in the option to select the type of code).

See also this question: Visual Studio does not load modules when connected to a process.

+6
source share

I had the same problem today with Visual Studio 2008. I used a simple tester to test the new method in the assembly. By adding a link to my assembly, I wrote code to load the assembly and call the new method, assembly, everything is OK. But at runtime, the debugger threw an exception, saying that there was no new new method, and the module window was empty.

It turns out that the assembly I modified was in the GAC, and was used in my assembly directory instead of the new one.

+1
source share

All Articles