Closed
Bug 494157
Opened 16 years ago
Closed 16 years ago
nanojit debug output uses inconsistent output channels
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)
Tamarin Graveyard
Baseline JIT (CodegenLIR)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: jseward, Unassigned)
References
Details
Attachments
(1 file, 3 obsolete files)
59.54 KB,
patch
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042700 SUSE/3.0.10-1.1 Firefox/3.0.10
Build Identifier:
In js/src/nanojit/*.{cpp,h}, debugging output (as emitted by
TRACEMONKEY=verbose ...) is sometimes printf'd, sometimes
fprintf'd, and sometimes sent deferredly via Assembler::outputf et al.
Attached patch creates "void nj_dprintf( const char* format, ...)" and
sends all output through that instead. Some notes:
* Assembler::outputf et al are unchanged, since it accumulates strings
so they can be shown in reverse order later. Of course when the
strings are finally dumped, they go through nj_dprintf, just like
everything else.
* nj_dprintf is in LIR.cpp. I couldn't find a natural "misc helper fns"
file to park it in.
* This change literally only deals with output from files in nanojit/,
so as to keep nanojit independent. In particular it doesn't deal with
output from jstracer.cpp, even though that also emits lots of stuff
with TRACEMONKEY=verbose enabled.
On second thoughts it's probably easy enough to do if required, since
jstracer.cpp includes nanojit.h.
* nanojit.h __NanoAssertMsgf contains a fprintf(stderr ...) as part of
an assertion failure handler. I didn't change that on the assumption
that all assertion failure text should go to stderr. Right?
Reproducible: Always
Reporter | ||
Comment 1•16 years ago
|
||
Reporter | ||
Comment 2•16 years ago
|
||
Reporter | ||
Comment 3•16 years ago
|
||
Re bullet point 3 of Description. It's obviously trivial to extend
use of nj_dprintf into jstracer.cpp. A revised version of the patch
to do that, is attached at Comment #2. That causes the vast majority
of the TRACEMONKEY=verbose output to go through nj_dprintf, but not
all of it. I suspect to make this completely consistent would require
visiting all the files in jrs/src. At a bare minimum we'd have to
look at js_Disassemble1 in jsopcode.cpp.
Comments?
Updated•16 years ago
|
Attachment #378835 -
Attachment is obsolete: true
Comment 4•16 years ago
|
||
Comment on attachment 378851 [details] [diff] [review]
patch extended to intercept debug output also from jstracer.cpp
This is an improvement for sure. I'm not worried about the bytecode disassembler stuff.
I am going to switch the output from stderr to stdout though. By bulk most of it goes to stdout now (pre-patch), and I don't want to change that. It's useful - debug spew interleaves with print() output.
Attachment #378851 -
Flags: review+
Reporter | ||
Comment 5•16 years ago
|
||
Attachment #378851 -
Attachment is obsolete: true
Comment 6•16 years ago
|
||
Remember to solicit feedback from Adobe for discussion-worthy structural changes to nanojit. This is a nice cleanup so I don't think anyone will mind though.
Comment 7•16 years ago
|
||
appreciate the nod, and yeah, cleanup is a big +1
Comment 8•16 years ago
|
||
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Updated•15 years ago
|
Status: RESOLVED → VERIFIED
Comment 9•5 years ago
|
||
Comment 10•5 years ago
|
||
Comment on attachment 9094293 [details]
Part 4 - Add AltSvc support for Http3. r=mayhemer
Revision D46650 was moved to bug 1581637. Setting attachment 9094293 [details] to obsolete.
Attachment #9094293 -
Attachment is obsolete: true
You need to log in
before you can comment on or make changes to this bug.
Description
•