General Development

Debugging dll in a dll chain – Calin

Calin

Member

Posts: 358
From: Moldova
Registered: 12-04-2006
Can you debug a dll in a dll chain? Let's say my application Hello.exe calls a function in first.dll which in turn calls a function in second.dll. Is it possible to debug second.dll?


------------------
Nanostorm: Machine Uprise

[This message has been edited by Calin (edited September 08, 2007).]

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
Yes. You can step in from one to another to the next. Be sure you are running the Debug version. You can run a release version in the debugger too, but since it's not compiled with debugging options, you sometimes end up on the wrong line or see wacky values.

Be sure the PDB files are in the executable directory and that your code matches with the latest builds.

I'm assuming you are using Visual Studio.

Calin

Member

Posts: 358
From: Moldova
Registered: 12-04-2006
Thanks ssquared.

It was for a discussion I was having with someone about the pros and cons of storing engine components in dlls. I made a search in google but I couldn't find anything on debugging a dll that is being used by onother dll.

------------------
Nanostorm: Machine Uprise

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
I like having components in DLLs. Otherwise, you end up with a large, monolithic application. Keep in mind, both an EXE and DLL can access another DLL, but a DLL can not access back to an EXE. So plan your design wisely.

Also, is this for C# or C++? I guess it might be for your C# game, but if it's for C++, you should know there are two types of DLLs. There are extension and regular DLLs. If you are doing this for C++, let me know and I can give a rundown of extension vs. regular DLLs.

Another great job on Microsoft's part, you can debug multi-language from C++ to a C# DLL. I think you can even debug from C# to C, but it's been so long, I can't remember. But I'm pretty sure you can debug into the C call.

spade89

Member

Posts: 561
From: houston,tx
Registered: 11-28-2006
if you guys don't mind can anyone show me or give me a link that shows how to make dlls in linux( i think they are .so files in linux) and how to use them /make them using g++??

------------------
John 14:6

Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me.

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Spade have you tried google?

[URL=http://www.google.fi/search?q=dlls+linux&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US fficial&client=firefox-a]search results[/URL]


------------------
Psa 32:5 I acknowledged my sin unto thee, and mine iniquity have I not hid. I said, I will confess my transgressions unto the LORD; and thou forgavest the iniquity of my sin. Selah.

[VoHW] (Help needed) [Blog] (Contact) - Truedisciple (mp3)

[This message has been edited by jari (edited September 11, 2007).]

Calin

Member

Posts: 358
From: Moldova
Registered: 12-04-2006
quote:
Originally posted by ssquared:
I like having components in DLLs. Otherwise, you end up with a large, monolithic application. Keep in mind, both an EXE and DLL can access another DLL, but a DLL can not access back to an EXE. So plan your design wisely.

Also, is this for C# or C++? I guess it might be for your C# game, but if it's for C++, you should know there are two types of DLLs. There are extension and regular DLLs. If you are doing this for C++, let me know and I can give a rundown of extension vs. regular DLLs.

Another great job on Microsoft's part, you can debug multi-language from C++ to a C# DLL. I think you can even debug from C# to C, but it's been so long, I can't remember. But I'm pretty sure you can debug into the C call.



It was a question of principle. In my game the engine is one large dll.
Thanks for the tip on multi-language debugging, I hope I won't have to use this information though, I only have one C-style dll.

------------------
Nanostorm: Machine Uprise