Closed
Bug 531859
Opened 15 years ago
Closed 15 years ago
Remove printf console output from PluginInstance*
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: jimm, Assigned: benjamin)
References
Details
Attachments
(1 file, 2 obsolete files)
49.97 KB,
patch
|
cjones
:
review+
|
Details | Diff | Splinter Review |
Currently log output is printed to console:
#undef _MOZ_LOG
#define _MOZ_LOG(s) printf("[PluginProcessParent] %s\n", s)
This should be tied to low level nspr log output for plugins. Current console output can really drag debug builds down.
![]() |
Reporter | |
Updated•15 years ago
|
Assignee | ||
Comment 2•15 years ago
|
||
When I was being lazy I just replace _MOZ_LOG(__FUNCTION__); with PLUGING_LOG_DEBUG_FUNCTION, but in some cases I was more careful and added more detailed parameter logging.
Attachment #418420 -
Flags: review?(jones.chris.g)
Assignee | ||
Comment 3•15 years ago
|
||
Whoops, removing necessary code is bad.
Attachment #418420 -
Attachment is obsolete: true
Attachment #418430 -
Flags: review?(jones.chris.g)
Attachment #418420 -
Flags: review?(jones.chris.g)
Comment on attachment 418430 [details] [diff] [review]
Fix logging by using NSPR logging instead of printf, rev. 1.1
>diff --git a/dom/plugins/Makefile.in b/dom/plugins/Makefile.in
>--- a/dom/plugins/Makefile.in
>+++ b/dom/plugins/Makefile.in
>@@ -111,8 +111,10 @@ LOCAL_INCLUDES = \
> -I$(topsrcdir)/modules/plugin/base/src/ \
> $(NULL)
>
> include $(topsrcdir)/config/config.mk
> include $(topsrcdir)/ipc/chromium/chromium-config.mk
> endif
>
> include $(topsrcdir)/config/rules.mk
>+
>+DEFINES += -DFORCE_PR_LOG
>\ No newline at end of file
Might as well fix this while we're at it.
>diff --git a/dom/plugins/PluginInstanceChild.cpp b/dom/plugins/PluginInstanceChild.cpp
>--- a/dom/plugins/PluginInstanceChild.cpp
>+++ b/dom/plugins/PluginInstanceChild.cpp
>
> NPError
> PluginInstanceChild::NPN_SetValue(NPPVariable aVar, void* aValue)
> {
>- printf ("[PluginInstanceChild] NPN_SetValue(%s, %ld)\n",
>- NPPVariableToString(aVar), reinterpret_cast<intptr_t>(aValue));
> AssertPluginThread();
>
Any reason we're not logging this anymore?
>diff --git a/dom/plugins/PluginMessageUtils.h b/dom/plugins/PluginMessageUtils.h
>--- a/dom/plugins/PluginMessageUtils.h
>+++ b/dom/plugins/PluginMessageUtils.h
>@@ -42,32 +42,39 @@
> #include "IPC/IPCMessageUtils.h"
>
> #include "npapi.h"
> #include "npruntime.h"
> #include "npfunctions.h"
> #include "nsAutoPtr.h"
> #include "nsStringGlue.h"
> #include "nsThreadUtils.h"
>+#include "prlog.h"
>
> namespace mozilla {
>
> // XXX might want to move these to nscore.h or something, they can be
> // generally useful
> struct void_t { };
> struct null_t { };
>
> namespace ipc {
>
> typedef intptr_t NPRemoteIdentifier;
>
> } /* namespace ipc */
>
> namespace plugins {
>
>+extern PRLogModuleInfo* gPluginLog;
>+
>+#define PLUGIN_LOG_DEBUG(args) PR_LOG(gPluginLog, PR_LOG_DEBUG, args)
>+#define PLUGIN_LOG_DEBUG_FUNCTION PR_LOG(gPluginLog, PR_LOG_DEBUG, ("%s", __FUNCTION__))
>+#define PLUGIN_LOG_DEBUG_METHOD PR_LOG(gPluginLog, PR_LOG_DEBUG, ("%s<%p>", __FUNCTION__, (void*) this))
>+
It really stinks that this logging doesn't have class/file name. We could get log output like
NPP_Foo
NPP_Foo
NPP_Foo
NPP_Foo
Maybe we could log __FILE__ along with __FUNCTION__? Another option could be a MOZ_NPAPI_THING that each .cpp defines for itself, e.g. |#define MOZ_NPAPI_THING "PluginInstanceChild"|, and PLUGIN_LOG_* magically uses.
Attachment #418430 -
Flags: review?(jones.chris.g) → review-
Assignee | ||
Comment 5•15 years ago
|
||
Ideally I think that IPDL should do forced PR logging and a lot of this logging is irrelevant, but until then this should do the trick.
Attachment #418430 -
Attachment is obsolete: true
Attachment #420572 -
Flags: review?(jones.chris.g)
(In reply to comment #5)
> Ideally I think that IPDL should do forced PR logging and a lot of this logging
> is irrelevant, but until then this should do the trick.
Yeah, some of this is redundant. We only need to log (i) messages with params we want to print; (ii) calls to NP* functions that might not result in IPC, like NPN_GetValue(). IPDL can log the rest.
Comment on attachment 420572 [details] [diff] [review]
Fix logging by using NSPR logging instead of printf, rev. 1.2
Cool. I didn't know about __PRETTY_FUNCTION__.
Attachment #420572 -
Flags: review?(jones.chris.g) → review+
Assignee | ||
Comment 8•15 years ago
|
||
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•