473,326 Members | 2,013 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,326 software developers and data experts.

debugging with a pdb file

MBB
hello, all,

my problem: my company sells an COM component compiled in VS6 using ATL. one of
our valued customers is having some problems with a beta version of our
component; it crashes their app. they develop in VSdotNET.

i am considering the possibility of providing them with a pdb file along with
the other stuff we would normally give them to test. i understand that this
requires some trust on our part. that is not an issue in this case.

i am exploring the various makefile params needed to generate the single pdb
file and may have questions on that aspect later; but first i want to understand
better what can be accomplished with the pdb file and how i might observe that
functionality on my dev machine.

suppose i have succeeded in creating MyCOMstuff.pdb.
what must i do in a VS6 client to experience the utility of the pdb file?
assume the MyCOMstuff.dll component is registered on my system and its pdb file
is sitting in the same folder as my client exe.

now what do i do?
will i be able to step into method calls to my component?

thanks for any help on this matter.
i can't seem to find a lucid discussion of it anywhere.
Jul 13 '06 #1
4 1819
"MBB" <ma***************@infometrix.comwrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
suppose i have succeeded in creating MyCOMstuff.pdb.
what must i do in a VS6 client to experience the utility of the pdb file?
assume the MyCOMstuff.dll component is registered on my system and its pdb
file is sitting in the same folder as my client exe.

now what do i do?
will i be able to step into method calls to my component?
First I should point out that this is not legal advice, but as I understand
it, you may _not_ redistribute the debug DLLs that come with the compiler.
For that reason, for this to work, your client will need to have the whole
debug package installed. Further, since the PDB format changes over time, at
a minimum you will have to insure that the same development that you used to
build your product is available at your client's site.

Rather than doing the debugging at the client site, you might want to create
a mini-dump there and debug after the fact in your shop. This article may
help you get started with that:

http://www.codeproject.com/debug/pos...tandalone1.asp

Regards,
Will
Jul 13 '06 #2
MBB
William DePalo [MVP VC++] wrote:
First I should point out that this is not legal advice, but as I understand
it, you may _not_ redistribute the debug DLLs that come with the compiler.
For that reason, for this to work, your client will need to have the whole
debug package installed.
sorry if i was imprecise in my description.

i wasn't planning to distribute the debug dlls.
(and i do understand this restriction.)
i was thinking that i would give them a release build with debug info.
after all it's a release version of our component that is crashing their client.
>Further, since the PDB format changes over time, at
a minimum you will have to insure that the same development that you used to
build your product is available at your client's site.
i'm not sure what this means.
i would build the component in VS6 in release mode.
i would send them the component and the associated pdb file.
are you saying that their use of VS.net compiler (should i say VC7?) will
"invalidate" the pdb i made in VS6?
Rather than doing the debugging at the client site, you might want to create
a mini-dump there and debug after the fact in your shop. This article may
help you get started with that:

http://www.codeproject.com/debug/pos...tandalone1.asp
this seems to require that we use the net debugger.
no can do. we're strictly VS6.

Jul 13 '06 #3
MBB wrote:
William DePalo [MVP VC++] wrote:
>First I should point out that this is not legal advice, but as I
understand it, you may _not_ redistribute the debug DLLs that come
with the compiler. For that reason, for this to work, your client will
need to have the whole debug package installed.


sorry if i was imprecise in my description.

i wasn't planning to distribute the debug dlls.
(and i do understand this restriction.)
i was thinking that i would give them a release build with debug info.
after all it's a release version of our component that is crashing their
client.
>Further, since the PDB format changes over time, at a minimum you will
have to insure that the same development that you used to build your
product is available at your client's site.


i'm not sure what this means.
i would build the component in VS6 in release mode.
i would send them the component and the associated pdb file.
are you saying that their use of VS.net compiler (should i say VC7?)
will "invalidate" the pdb i made in VS6?
MBB:

You certainly cannot use a VC7 .pdb file in VC6. This is the major
impediment to the holy grail of using the VC7 compiler in the VC6 IDE.

But I think it should work the other way around. In fact, I know you can
use VS.NET as the JIT debugger in VC6.

David Wilkinson
Jul 13 '06 #4

In addition to other replies:
my problem: my company sells an COM component compiled in VS6 using ATL. one of
our valued customers is having some problems with a beta version of our
component; it crashes their app. they develop in VSdotNET.

i am considering the possibility of providing them with a pdb file along with
the other stuff we would normally give them to test. i understand that this
requires some trust on our part. that is not an issue in this case.

i am exploring the various makefile params needed to generate the single pdb
file and may have questions on that aspect later; but first i want to understand
better what can be accomplished with the pdb file and how i might observe that
functionality on my dev machine.
Yes, IMO it is a good practice to ship .pdb file with your component.
The main reason why it can be useful for your customers is that they will be able
to see good call stacks when the application crashes inside your component,
or in a callback made from your component.
Without symbols, and if your component's code is optimized, they are usually
not able to do that.

There are two kinds of symbols you can supply:
- public symbols (enough to get good call stacks and see meaningful function names)
- full symbols (additionally allow to see the types of all variables, values of function
parameters and local variables, and step through source code (if it is available separately))

Usually what you need is to create a .pdb file with only public symbols and ship
it to your customers with the component. For components built with VC6, you can
use Rebase tool to produce public-only .pdb files.

(But if you want your customers to really debug into your component on source level,
you need to send them an unoptimized build of your component, .pdb file with full symbols,
and also send them the source files).

For discussion of related issues, you can take a look at this article:
http://www.debuginfo.com/articles/gendebuginfo.html
(section about Rebase talks about .dbg files; for .pdb files it is used
in exactly the same way)

Regards,
Oleg
[VC++ MVP http://www.debuginfo.com/]

Jul 14 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: ZMan | last post by:
Scenario: This is about debugging server side scripts that make calls to middle-tier business DLLs. The server side scripts are legacy ASP 3.0 pages, and the DLLs are managed DLLs...
5
by: snicks | last post by:
I'm trying to exec a program external to my ASP.NET app using the following code. The external app is a VB.NET application. Dim sPPTOut As String sPPTOut = MDEPDirStr + sID + ".ppt" Dim p As...
0
by: Joseph S. | last post by:
hi all, debugging PHP applications interactively is possible, easy and free. I am talking about PHPEclipse and using it for debugging over several scripts or debugging through a session. Since I...
5
by: phnimx | last post by:
Hi , We have developed a number of plug-in .NET Library Components that we typically deploy with our various applications by installing them into the GAC. Each of the applications contains an...
5
by: rn5a | last post by:
Can someone please suggest me a text editor especially for DEBUGGING ASP scripts apart from Microsoft Visual Interdev? I tried using Visual Interdev & created a project but Interdev generates...
0
by: Benny | last post by:
I have been trying to instal AutoCAD 2008 on a single PC and get the following Microsoft .NET Framework security error. I have updated to the latest .NET Framework 2.0 software, however, this...
12
by: hjmjao | last post by:
Hi when I run my application for some users it gives me the following message See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ...
0
by: stimpy_cm | last post by:
Hi everyone, I’m not a programmer but have a little notion about how things work. I recently downloaded an emulator for my calculator (Texas Instruments Voyage 200), the program uses a library...
0
jwwicks
by: jwwicks | last post by:
Introduction This tutorial describes how to use Visual Studio to create a new C++ program, compile/run a program, resume work on an existing program and debug a program. It is aimed at the...
2
jwwicks
by: jwwicks | last post by:
C/C++ Programs and Debugging in Linux This tutorial will give you a basic idea how to debug a program in Linux using GDB. As you are aware Visual Studio doesn’t run on Linux so you have to use...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.