Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Side by Side Diff: src/log.cc

Issue 21410: Include all the code in code creation log events. The code object header size... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/log.h ('k') | tools/linux-tick-processor.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 #ifdef ENABLE_LOGGING_AND_PROFILING 672 #ifdef ENABLE_LOGGING_AND_PROFILING
673 if (logfile_ == NULL || !FLAG_log) return; 673 if (logfile_ == NULL || !FLAG_log) return;
674 LogMessageBuilder msg; 674 LogMessageBuilder msg;
675 msg.Append("delete,%s,0x%x\n", name, 675 msg.Append("delete,%s,0x%x\n", name,
676 reinterpret_cast<unsigned int>(object)); 676 reinterpret_cast<unsigned int>(object));
677 msg.WriteToLogFile(); 677 msg.WriteToLogFile();
678 #endif 678 #endif
679 } 679 }
680 680
681 681
682 int Logger::CodeObjectSize(Code* code) {
683 // Check that the assumptions about the layout of the code object holds.
684 ASSERT_EQ(reinterpret_cast<unsigned int>(code->instruction_start()) -
685 reinterpret_cast<unsigned int>(code->address()),
686 Code::kHeaderSize);
687 return code->instruction_size() + Code::kHeaderSize;
688 }
689
690
682 void Logger::CodeCreateEvent(const char* tag, Code* code, const char* comment) { 691 void Logger::CodeCreateEvent(const char* tag, Code* code, const char* comment) {
683 #ifdef ENABLE_LOGGING_AND_PROFILING 692 #ifdef ENABLE_LOGGING_AND_PROFILING
684 if (logfile_ == NULL || !FLAG_log_code) return; 693 if (logfile_ == NULL || !FLAG_log_code) return;
685 LogMessageBuilder msg; 694 LogMessageBuilder msg;
686 msg.Append("code-creation,%s,0x%x,%d,\"", tag, 695 msg.Append("code-creation,%s,0x%x,%d,\"", tag,
687 reinterpret_cast<unsigned int>(code->address()), 696 reinterpret_cast<unsigned int>(code->address()),
688 code->instruction_size()); 697 CodeObjectSize(code));
689 for (const char* p = comment; *p != '\0'; p++) { 698 for (const char* p = comment; *p != '\0'; p++) {
690 if (*p == '"') { 699 if (*p == '"') {
691 msg.Append('\\'); 700 msg.Append('\\');
692 } 701 }
693 msg.Append(*p); 702 msg.Append(*p);
694 } 703 }
695 msg.Append('"'); 704 msg.Append('"');
696 msg.Append('\n'); 705 msg.Append('\n');
697 msg.WriteToLogFile(); 706 msg.WriteToLogFile();
698 #endif 707 #endif
699 } 708 }
700 709
701 710
702 void Logger::CodeCreateEvent(const char* tag, Code* code, String* name) { 711 void Logger::CodeCreateEvent(const char* tag, Code* code, String* name) {
703 #ifdef ENABLE_LOGGING_AND_PROFILING 712 #ifdef ENABLE_LOGGING_AND_PROFILING
704 if (logfile_ == NULL || !FLAG_log_code) return; 713 if (logfile_ == NULL || !FLAG_log_code) return;
705 LogMessageBuilder msg; 714 LogMessageBuilder msg;
706 SmartPointer<char> str = 715 SmartPointer<char> str =
707 name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 716 name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
708 msg.Append("code-creation,%s,0x%x,%d,\"%s\"\n", tag, 717 msg.Append("code-creation,%s,0x%x,%d,\"%s\"\n", tag,
709 reinterpret_cast<unsigned int>(code->address()), 718 reinterpret_cast<unsigned int>(code->address()),
710 code->instruction_size(), *str); 719 CodeObjectSize(code), *str);
711 msg.WriteToLogFile(); 720 msg.WriteToLogFile();
712 #endif 721 #endif
713 } 722 }
714 723
715 724
716 void Logger::CodeCreateEvent(const char* tag, Code* code, String* name, 725 void Logger::CodeCreateEvent(const char* tag, Code* code, String* name,
717 String* source, int line) { 726 String* source, int line) {
718 #ifdef ENABLE_LOGGING_AND_PROFILING 727 #ifdef ENABLE_LOGGING_AND_PROFILING
719 if (logfile_ == NULL || !FLAG_log_code) return; 728 if (logfile_ == NULL || !FLAG_log_code) return;
720 LogMessageBuilder msg; 729 LogMessageBuilder msg;
721 SmartPointer<char> str = 730 SmartPointer<char> str =
722 name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 731 name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
723 SmartPointer<char> sourcestr = 732 SmartPointer<char> sourcestr =
724 source->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 733 source->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
725 msg.Append("code-creation,%s,0x%x,%d,\"%s %s:%d\"\n", tag, 734 msg.Append("code-creation,%s,0x%x,%d,\"%s %s:%d\"\n", tag,
726 reinterpret_cast<unsigned int>(code->address()), 735 reinterpret_cast<unsigned int>(code->address()),
727 code->instruction_size(), *str, *sourcestr, line); 736 CodeObjectSize(code),
737 *str, *sourcestr, line);
728 msg.WriteToLogFile(); 738 msg.WriteToLogFile();
729 #endif 739 #endif
730 } 740 }
731 741
732 742
733 void Logger::CodeCreateEvent(const char* tag, Code* code, int args_count) { 743 void Logger::CodeCreateEvent(const char* tag, Code* code, int args_count) {
734 #ifdef ENABLE_LOGGING_AND_PROFILING 744 #ifdef ENABLE_LOGGING_AND_PROFILING
735 if (logfile_ == NULL || !FLAG_log_code) return; 745 if (logfile_ == NULL || !FLAG_log_code) return;
736 LogMessageBuilder msg; 746 LogMessageBuilder msg;
737 msg.Append("code-creation,%s,0x%x,%d,\"args_count: %d\"\n", tag, 747 msg.Append("code-creation,%s,0x%x,%d,\"args_count: %d\"\n", tag,
738 reinterpret_cast<unsigned int>(code->address()), 748 reinterpret_cast<unsigned int>(code->address()),
739 code->instruction_size(), 749 CodeObjectSize(code),
740 args_count); 750 args_count);
741 msg.WriteToLogFile(); 751 msg.WriteToLogFile();
742 #endif 752 #endif
743 } 753 }
744 754
745 755
746 void Logger::CodeAllocateEvent(Code* code, Assembler* assem) { 756 void Logger::CodeAllocateEvent(Code* code, Assembler* assem) {
747 #ifdef ENABLE_LOGGING_AND_PROFILING 757 #ifdef ENABLE_LOGGING_AND_PROFILING
748 if (logfile_ == NULL || !FLAG_log_code) return; 758 if (logfile_ == NULL || !FLAG_log_code) return;
749 LogMessageBuilder msg; 759 LogMessageBuilder msg;
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 if (FLAG_log_state_changes) { 1128 if (FLAG_log_state_changes) {
1119 LOG(UncheckedStringEvent("Leaving", StateToString(state_))); 1129 LOG(UncheckedStringEvent("Leaving", StateToString(state_)));
1120 if (previous_) { 1130 if (previous_) {
1121 LOG(UncheckedStringEvent("To", StateToString(previous_->state_))); 1131 LOG(UncheckedStringEvent("To", StateToString(previous_->state_)));
1122 } 1132 }
1123 } 1133 }
1124 } 1134 }
1125 #endif 1135 #endif
1126 1136
1127 } } // namespace v8::internal 1137 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/log.h ('k') | tools/linux-tick-processor.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698