Closed
Bug 166977
Opened 22 years ago
Closed 13 years ago
Mfcembed no longer runs in Visual Studio Debugger
Categories
(Core Graveyard :: Embedding: APIs, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: aaronlev, Unassigned)
References
()
Details
(Keywords: regression)
Attachments
(1 obsolete file)
Heikki and I are both getting a debug assertion dialog box when we try to debug
with Mfcembed.
Debug Assertion Failed!
Program blah/blah/blah/Mfcembed.exe
File blah/blah/blah/Mfcembed.cpp line 329
I have an urgent problem in bug 166987 that only happens with embedding
applications, but I am unable to debug because of this bug. This is blocking me.
Make that bug 166978.
1.25 <chak@netscape.com> 11 Jun 2002 13:35
Fix for #129582 - Chnages to demostrate MRE usage
r=adamlock, sr=rpotts, a=drivers
fwiw it's spelled MfcEmbed.cpp, spelling counts for those of us who prefer to
use bonsai.mozilla.org/cvsguess.cgi?file= <filename>
Depends on: 129582
Comment 4•22 years ago
|
||
Not being able to register MRE components is not fatal. This should fix the
problem you are seeing with MFCEmbed.
Comment on attachment 98082 [details] [diff] [review]
proposed patch v.1
please change this to NS_WARNING():
131 chak 1.35 NS_ASSERTION(PR_FALSE, "Could not
AutoRegister MRE components");
Attachment #98082 -
Flags: review+
Comment 6•22 years ago
|
||
Comment on attachment 98082 [details] [diff] [review]
proposed patch v.1
sr=alecf
Attachment #98082 -
Flags: superreview+
Comment 7•22 years ago
|
||
though, would it make sense to get rid of the if (NS_FAILED(rv)
and just make the whole statement
NS_ASSERTION(NS_SUCCEEDED(rv), "...");
sr=alecf if you do that too...
Comment 9•22 years ago
|
||
Attachment #98082 -
Flags: approval+
Comment 10•22 years ago
|
||
Checking in nsEmbedAPI.cpp;
/cvsroot/mozilla/embedding/base/nsEmbedAPI.cpp,v <-- nsEmbedAPI.cpp
new revision: 1.39; previous revision: 1.38
done
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
That didn't help, reopening. The assertion (still) happens, as Aaron pointed
out, in MfcEmbed.cpp line 329. I can not just jump over the assertion, it will
just assert later in another line, and another line and so on...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 12•22 years ago
|
||
I don't see any problems with my patch. chak?
Assignee: dougt → chak
Status: REOPENED → NEW
Hmm, I had to clobber in embedding to get a bit forward (the line the debugger
showed me was the next line of execution was wrong after line 126: |if (mreDir)|
in nsEmbedAPI.cpp) after depend build.
Now I can see that I get to line 136:
nsCOMPtr<nsIObserver> mStartupNotifier =
do_CreateInstance(NS_APPSTARTUPNOTIFIER_CONTRACTID, &rv);
which fails (rv==NS_ERROR_FACTORY_NOT_REGISTERED, from
nsComponentManagerImpl::FindFactory()).
Comment 14•22 years ago
|
||
something is seriously wrong with your build.
try removing the following:
bin/component.reg
bin/components/compreg.dat
then starting again.
That did not help.
Note that I CAN run MfcEmbed if I double click on it in the Explorer. I just
can't run it from Visual Studio (even ctrl+f5 won't work, asserts in the same
place as when trying to run it in the debugger). Is anyone able to do this now?
What kind of trickery have you done to make it possible? Are there some
environment variables I need to set?
I was finally able to attach the debugger to a running instance of MfcEmbed from
the task manager (right click process, Debug), so I can lower the severity to
major. That is still very unconvenient, and won't help if someone has a problem
with startup that they need to debug.
Severity: blocker → major
Comment 16•22 years ago
|
||
I updated my trunk this afternoon and rebuilt the tree.
I'm able to:
1. Run MfcEmbed from the command line or by dbl clicking in Explorer
2. Debug it via VC++ IDE without any issues or doing anything special.
One thing i'm curious about is the assert you're seeing at line 329 as mentioned
above. If you look at the source at
http://lxr.mozilla.org/seamonkey/source/embedding/tests/mfcembed/MfcEmbed.cpp#329
there's no assert at that line or in that vicinity. I'm suspecting you do not
have the latest source?
Seems like alecf changed the file this morning. I just updated, I still get the
same assert in the same code, the line number is just different:
rv = NS_InitEmbedding(mreAppDir, provider);
if(NS_FAILED(rv))
{
384: ASSERT(FALSE); <= ASSERT HERE!
return FALSE;
}
Since me, Aaron, Harish and Johnny all hit this assertion this seems real even
if you and Doug don't hit it.
When you say debug via the VC++ IDE I am assuming you do it by setting Projects
> Settings... > Debug > General > "Executable for debug session" to path to
mfcembed.exe, and hitting F5. If you are doing something else, let me know.
Comment 18•22 years ago
|
||
All I did was File->Open, and select the MFCEmbed.exe.
Ok, File > Open... works for me too, but it creates a new workspace. I don't
want that - I want to use my Mozilla workspace where I have all the breakpoints
I've set, all the DLLs I want to load into the debugger, all the files I want to
see in the class view etc.
Hmm, I finally found how I can get MfcEmbed to run like I want. In the settings
dialog set the working directory to the directory where the executable is.
What is so different in MfcEmbed that this doesn't work? mozilla.exe works,
viewer.exe works and all the command line test applications I've tried work. If
this is on purpose I need to update the win32 debugging FAQ.
Attachment #98082 -
Attachment is obsolete: true
Updated•15 years ago
|
Assignee: chak → nobody
QA Contact: dunn5557 → apis
Comment 20•13 years ago
|
||
Mass marking all MFCEmbed bugs as wontfix, since bug 377410 removed it. If this bug was erroneously included (or say equally applies to winEmbed), please reopen & accept my apologies.
Filter bugspam on mfcEmbedwontfix.
Status: NEW → RESOLVED
Closed: 22 years ago → 13 years ago
Resolution: --- → WONTFIX
Updated•6 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•