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

Side by Side Diff: src/log.cc

Issue 430503007: Rename ASSERT* to DCHECK*. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and fixes Created 6 years, 4 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/liveedit.cc ('k') | src/log-utils.h » ('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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdarg.h> 5 #include <stdarg.h>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 PerfBasicLogger::~PerfBasicLogger() { 275 PerfBasicLogger::~PerfBasicLogger() {
276 fclose(perf_output_handle_); 276 fclose(perf_output_handle_);
277 perf_output_handle_ = NULL; 277 perf_output_handle_ = NULL;
278 } 278 }
279 279
280 280
281 void PerfBasicLogger::LogRecordedBuffer(Code* code, 281 void PerfBasicLogger::LogRecordedBuffer(Code* code,
282 SharedFunctionInfo*, 282 SharedFunctionInfo*,
283 const char* name, 283 const char* name,
284 int length) { 284 int length) {
285 ASSERT(code->instruction_start() == code->address() + Code::kHeaderSize); 285 DCHECK(code->instruction_start() == code->address() + Code::kHeaderSize);
286 286
287 base::OS::FPrint(perf_output_handle_, "%llx %x %.*s\n", 287 base::OS::FPrint(perf_output_handle_, "%llx %x %.*s\n",
288 reinterpret_cast<uint64_t>(code->instruction_start()), 288 reinterpret_cast<uint64_t>(code->instruction_start()),
289 code->instruction_size(), length, name); 289 code->instruction_size(), length, name);
290 } 290 }
291 291
292 292
293 // Low-level logging support. 293 // Low-level logging support.
294 #define LL_LOG(Call) if (ll_logger_) ll_logger_->Call; 294 #define LL_LOG(Call) if (ll_logger_) ll_logger_->Call;
295 295
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 } 411 }
412 412
413 413
414 void LowLevelLogger::LogRecordedBuffer(Code* code, 414 void LowLevelLogger::LogRecordedBuffer(Code* code,
415 SharedFunctionInfo*, 415 SharedFunctionInfo*,
416 const char* name, 416 const char* name,
417 int length) { 417 int length) {
418 CodeCreateStruct event; 418 CodeCreateStruct event;
419 event.name_size = length; 419 event.name_size = length;
420 event.code_address = code->instruction_start(); 420 event.code_address = code->instruction_start();
421 ASSERT(event.code_address == code->address() + Code::kHeaderSize); 421 DCHECK(event.code_address == code->address() + Code::kHeaderSize);
422 event.code_size = code->instruction_size(); 422 event.code_size = code->instruction_size();
423 LogWriteStruct(event); 423 LogWriteStruct(event);
424 LogWriteBytes(name, length); 424 LogWriteBytes(name, length);
425 LogWriteBytes( 425 LogWriteBytes(
426 reinterpret_cast<const char*>(code->instruction_start()), 426 reinterpret_cast<const char*>(code->instruction_start()),
427 code->instruction_size()); 427 code->instruction_size());
428 } 428 }
429 429
430 430
431 void LowLevelLogger::CodeMoveEvent(Address from, Address to) { 431 void LowLevelLogger::CodeMoveEvent(Address from, Address to) {
(...skipping 14 matching lines...) Expand all
446 void LowLevelLogger::SnapshotPositionEvent(Address addr, int pos) { 446 void LowLevelLogger::SnapshotPositionEvent(Address addr, int pos) {
447 SnapshotPositionStruct event; 447 SnapshotPositionStruct event;
448 event.address = addr + Code::kHeaderSize; 448 event.address = addr + Code::kHeaderSize;
449 event.position = pos; 449 event.position = pos;
450 LogWriteStruct(event); 450 LogWriteStruct(event);
451 } 451 }
452 452
453 453
454 void LowLevelLogger::LogWriteBytes(const char* bytes, int size) { 454 void LowLevelLogger::LogWriteBytes(const char* bytes, int size) {
455 size_t rv = fwrite(bytes, 1, size, ll_output_handle_); 455 size_t rv = fwrite(bytes, 1, size, ll_output_handle_);
456 ASSERT(static_cast<size_t>(size) == rv); 456 DCHECK(static_cast<size_t>(size) == rv);
457 USE(rv); 457 USE(rv);
458 } 458 }
459 459
460 460
461 void LowLevelLogger::CodeMovingGCEvent() { 461 void LowLevelLogger::CodeMovingGCEvent() {
462 const char tag = kCodeMovingGCTag; 462 const char tag = kCodeMovingGCTag;
463 463
464 LogWriteBytes(&tag, sizeof(tag)); 464 LogWriteBytes(&tag, sizeof(tag));
465 } 465 }
466 466
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 Sampler(isolate, interval), 665 Sampler(isolate, interval),
666 profiler_(NULL) {} 666 profiler_(NULL) {}
667 667
668 ~Ticker() { if (IsActive()) Stop(); } 668 ~Ticker() { if (IsActive()) Stop(); }
669 669
670 virtual void Tick(TickSample* sample) { 670 virtual void Tick(TickSample* sample) {
671 if (profiler_) profiler_->Insert(sample); 671 if (profiler_) profiler_->Insert(sample);
672 } 672 }
673 673
674 void SetProfiler(Profiler* profiler) { 674 void SetProfiler(Profiler* profiler) {
675 ASSERT(profiler_ == NULL); 675 DCHECK(profiler_ == NULL);
676 profiler_ = profiler; 676 profiler_ = profiler;
677 IncreaseProfilingDepth(); 677 IncreaseProfilingDepth();
678 if (!IsActive()) Start(); 678 if (!IsActive()) Start();
679 } 679 }
680 680
681 void ClearProfiler() { 681 void ClearProfiler() {
682 profiler_ = NULL; 682 profiler_ = NULL;
683 if (IsActive()) Stop(); 683 if (IsActive()) Stop();
684 DecreaseProfilingDepth(); 684 DecreaseProfilingDepth();
685 } 685 }
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 is_initialized_(false) { 777 is_initialized_(false) {
778 } 778 }
779 779
780 780
781 Logger::~Logger() { 781 Logger::~Logger() {
782 delete log_; 782 delete log_;
783 } 783 }
784 784
785 785
786 void Logger::addCodeEventListener(CodeEventListener* listener) { 786 void Logger::addCodeEventListener(CodeEventListener* listener) {
787 ASSERT(!hasCodeEventListener(listener)); 787 DCHECK(!hasCodeEventListener(listener));
788 listeners_.Add(listener); 788 listeners_.Add(listener);
789 } 789 }
790 790
791 791
792 void Logger::removeCodeEventListener(CodeEventListener* listener) { 792 void Logger::removeCodeEventListener(CodeEventListener* listener) {
793 ASSERT(hasCodeEventListener(listener)); 793 DCHECK(hasCodeEventListener(listener));
794 listeners_.RemoveElement(listener); 794 listeners_.RemoveElement(listener);
795 } 795 }
796 796
797 797
798 bool Logger::hasCodeEventListener(CodeEventListener* listener) { 798 bool Logger::hasCodeEventListener(CodeEventListener* listener) {
799 return listeners_.Contains(listener); 799 return listeners_.Contains(listener);
800 } 800 }
801 801
802 802
803 void Logger::ProfilerBeginEvent() { 803 void Logger::ProfilerBeginEvent() {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 Log::MessageBuilder msg(log_); 852 Log::MessageBuilder msg(log_);
853 msg.Append("%s,0x%" V8PRIxPTR, name, location); 853 msg.Append("%s,0x%" V8PRIxPTR, name, location);
854 msg.WriteToLogFile(); 854 msg.WriteToLogFile();
855 } 855 }
856 856
857 857
858 // ApiEvent is private so all the calls come from the Logger class. It is the 858 // ApiEvent is private so all the calls come from the Logger class. It is the
859 // caller's responsibility to ensure that log is enabled and that 859 // caller's responsibility to ensure that log is enabled and that
860 // FLAG_log_api is true. 860 // FLAG_log_api is true.
861 void Logger::ApiEvent(const char* format, ...) { 861 void Logger::ApiEvent(const char* format, ...) {
862 ASSERT(log_->IsEnabled() && FLAG_log_api); 862 DCHECK(log_->IsEnabled() && FLAG_log_api);
863 Log::MessageBuilder msg(log_); 863 Log::MessageBuilder msg(log_);
864 va_list ap; 864 va_list ap;
865 va_start(ap, format); 865 va_start(ap, format);
866 msg.AppendVA(format, ap); 866 msg.AppendVA(format, ap);
867 va_end(ap); 867 va_end(ap);
868 msg.WriteToLogFile(); 868 msg.WriteToLogFile();
869 } 869 }
870 870
871 871
872 void Logger::ApiNamedSecurityCheck(Object* key) { 872 void Logger::ApiNamedSecurityCheck(Object* key) {
(...skipping 26 matching lines...) Expand all
899 if (!log_->IsEnabled() || !FLAG_prof) return; 899 if (!log_->IsEnabled() || !FLAG_prof) return;
900 Log::MessageBuilder msg(log_); 900 Log::MessageBuilder msg(log_);
901 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR, 901 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR,
902 library_path.c_str(), start, end); 902 library_path.c_str(), start, end);
903 msg.WriteToLogFile(); 903 msg.WriteToLogFile();
904 } 904 }
905 905
906 906
907 void Logger::CodeDeoptEvent(Code* code) { 907 void Logger::CodeDeoptEvent(Code* code) {
908 if (!log_->IsEnabled()) return; 908 if (!log_->IsEnabled()) return;
909 ASSERT(FLAG_log_internal_timer_events); 909 DCHECK(FLAG_log_internal_timer_events);
910 Log::MessageBuilder msg(log_); 910 Log::MessageBuilder msg(log_);
911 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); 911 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
912 msg.Append("code-deopt,%ld,%d", since_epoch, code->CodeSize()); 912 msg.Append("code-deopt,%ld,%d", since_epoch, code->CodeSize());
913 msg.WriteToLogFile(); 913 msg.WriteToLogFile();
914 } 914 }
915 915
916 916
917 void Logger::CurrentTimeEvent() { 917 void Logger::CurrentTimeEvent() {
918 if (!log_->IsEnabled()) return; 918 if (!log_->IsEnabled()) return;
919 ASSERT(FLAG_log_internal_timer_events); 919 DCHECK(FLAG_log_internal_timer_events);
920 Log::MessageBuilder msg(log_); 920 Log::MessageBuilder msg(log_);
921 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); 921 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
922 msg.Append("current-time,%ld", since_epoch); 922 msg.Append("current-time,%ld", since_epoch);
923 msg.WriteToLogFile(); 923 msg.WriteToLogFile();
924 } 924 }
925 925
926 926
927 void Logger::TimerEvent(Logger::StartEnd se, const char* name) { 927 void Logger::TimerEvent(Logger::StartEnd se, const char* name) {
928 if (!log_->IsEnabled()) return; 928 if (!log_->IsEnabled()) return;
929 ASSERT(FLAG_log_internal_timer_events); 929 DCHECK(FLAG_log_internal_timer_events);
930 Log::MessageBuilder msg(log_); 930 Log::MessageBuilder msg(log_);
931 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); 931 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
932 const char* format = (se == START) ? "timer-event-start,\"%s\",%ld" 932 const char* format = (se == START) ? "timer-event-start,\"%s\",%ld"
933 : "timer-event-end,\"%s\",%ld"; 933 : "timer-event-end,\"%s\",%ld";
934 msg.Append(format, name, since_epoch); 934 msg.Append(format, name, since_epoch);
935 msg.WriteToLogFile(); 935 msg.WriteToLogFile();
936 } 936 }
937 937
938 938
939 void Logger::EnterExternal(Isolate* isolate) { 939 void Logger::EnterExternal(Isolate* isolate) {
940 LOG(isolate, TimerEvent(START, TimerEventExternal::name())); 940 LOG(isolate, TimerEvent(START, TimerEventExternal::name()));
941 ASSERT(isolate->current_vm_state() == JS); 941 DCHECK(isolate->current_vm_state() == JS);
942 isolate->set_current_vm_state(EXTERNAL); 942 isolate->set_current_vm_state(EXTERNAL);
943 } 943 }
944 944
945 945
946 void Logger::LeaveExternal(Isolate* isolate) { 946 void Logger::LeaveExternal(Isolate* isolate) {
947 LOG(isolate, TimerEvent(END, TimerEventExternal::name())); 947 LOG(isolate, TimerEvent(END, TimerEventExternal::name()));
948 ASSERT(isolate->current_vm_state() == EXTERNAL); 948 DCHECK(isolate->current_vm_state() == EXTERNAL);
949 isolate->set_current_vm_state(JS); 949 isolate->set_current_vm_state(JS);
950 } 950 }
951 951
952 952
953 void Logger::DefaultTimerEventsLogger(const char* name, int se) { 953 void Logger::DefaultTimerEventsLogger(const char* name, int se) {
954 Isolate* isolate = Isolate::Current(); 954 Isolate* isolate = Isolate::Current();
955 LOG(isolate, TimerEvent(static_cast<StartEnd>(se), name)); 955 LOG(isolate, TimerEvent(static_cast<StartEnd>(se), name));
956 } 956 }
957 957
958 958
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 1031
1032 void Logger::ApiIndexedSecurityCheck(uint32_t index) { 1032 void Logger::ApiIndexedSecurityCheck(uint32_t index) {
1033 if (!log_->IsEnabled() || !FLAG_log_api) return; 1033 if (!log_->IsEnabled() || !FLAG_log_api) return;
1034 ApiEvent("api,check-security,%u", index); 1034 ApiEvent("api,check-security,%u", index);
1035 } 1035 }
1036 1036
1037 1037
1038 void Logger::ApiNamedPropertyAccess(const char* tag, 1038 void Logger::ApiNamedPropertyAccess(const char* tag,
1039 JSObject* holder, 1039 JSObject* holder,
1040 Object* name) { 1040 Object* name) {
1041 ASSERT(name->IsName()); 1041 DCHECK(name->IsName());
1042 if (!log_->IsEnabled() || !FLAG_log_api) return; 1042 if (!log_->IsEnabled() || !FLAG_log_api) return;
1043 String* class_name_obj = holder->class_name(); 1043 String* class_name_obj = holder->class_name();
1044 SmartArrayPointer<char> class_name = 1044 SmartArrayPointer<char> class_name =
1045 class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 1045 class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1046 if (name->IsString()) { 1046 if (name->IsString()) {
1047 SmartArrayPointer<char> property_name = 1047 SmartArrayPointer<char> property_name =
1048 String::cast(name)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL); 1048 String::cast(name)->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1049 ApiEvent("api,%s,\"%s\",\"%s\"", tag, class_name.get(), 1049 ApiEvent("api,%s,\"%s\",\"%s\"", tag, class_name.get(),
1050 property_name.get()); 1050 property_name.get());
1051 } else { 1051 } else {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 1156
1157 void Logger::SetterCallbackEvent(Name* name, Address entry_point) { 1157 void Logger::SetterCallbackEvent(Name* name, Address entry_point) {
1158 PROFILER_LOG(SetterCallbackEvent(name, entry_point)); 1158 PROFILER_LOG(SetterCallbackEvent(name, entry_point));
1159 CallbackEventInternal("set ", name, entry_point); 1159 CallbackEventInternal("set ", name, entry_point);
1160 } 1160 }
1161 1161
1162 1162
1163 static void AppendCodeCreateHeader(Log::MessageBuilder* msg, 1163 static void AppendCodeCreateHeader(Log::MessageBuilder* msg,
1164 Logger::LogEventsAndTags tag, 1164 Logger::LogEventsAndTags tag,
1165 Code* code) { 1165 Code* code) {
1166 ASSERT(msg); 1166 DCHECK(msg);
1167 msg->Append("%s,%s,%d,", 1167 msg->Append("%s,%s,%d,",
1168 kLogEventsNames[Logger::CODE_CREATION_EVENT], 1168 kLogEventsNames[Logger::CODE_CREATION_EVENT],
1169 kLogEventsNames[tag], 1169 kLogEventsNames[tag],
1170 code->kind()); 1170 code->kind());
1171 msg->AppendAddress(code->address()); 1171 msg->AppendAddress(code->address());
1172 msg->Append(",%d,", code->ExecutableSize()); 1172 msg->Append(",%d,", code->ExecutableSize());
1173 } 1173 }
1174 1174
1175 1175
1176 void Logger::CodeCreateEvent(LogEventsAndTags tag, 1176 void Logger::CodeCreateEvent(LogEventsAndTags tag,
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
1570 1570
1571 virtual void VisitFunction(JSFunction* function) { 1571 virtual void VisitFunction(JSFunction* function) {
1572 SharedFunctionInfo* sfi = SharedFunctionInfo::cast(function->shared()); 1572 SharedFunctionInfo* sfi = SharedFunctionInfo::cast(function->shared());
1573 Object* maybe_script = sfi->script(); 1573 Object* maybe_script = sfi->script();
1574 if (maybe_script->IsScript() 1574 if (maybe_script->IsScript()
1575 && !Script::cast(maybe_script)->HasValidSource()) return; 1575 && !Script::cast(maybe_script)->HasValidSource()) return;
1576 if (sfis_ != NULL) { 1576 if (sfis_ != NULL) {
1577 sfis_[*count_] = Handle<SharedFunctionInfo>(sfi); 1577 sfis_[*count_] = Handle<SharedFunctionInfo>(sfi);
1578 } 1578 }
1579 if (code_objects_ != NULL) { 1579 if (code_objects_ != NULL) {
1580 ASSERT(function->code()->kind() == Code::OPTIMIZED_FUNCTION); 1580 DCHECK(function->code()->kind() == Code::OPTIMIZED_FUNCTION);
1581 code_objects_[*count_] = Handle<Code>(function->code()); 1581 code_objects_[*count_] = Handle<Code>(function->code());
1582 } 1582 }
1583 *count_ = *count_ + 1; 1583 *count_ = *count_ + 1;
1584 } 1584 }
1585 1585
1586 private: 1586 private:
1587 Handle<SharedFunctionInfo>* sfis_; 1587 Handle<SharedFunctionInfo>* sfis_;
1588 Handle<Code>* code_objects_; 1588 Handle<Code>* code_objects_;
1589 int* count_; 1589 int* count_;
1590 }; 1590 };
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1936 if (jit_logger_) { 1936 if (jit_logger_) {
1937 removeCodeEventListener(jit_logger_); 1937 removeCodeEventListener(jit_logger_);
1938 delete jit_logger_; 1938 delete jit_logger_;
1939 jit_logger_ = NULL; 1939 jit_logger_ = NULL;
1940 } 1940 }
1941 1941
1942 return log_->Close(); 1942 return log_->Close();
1943 } 1943 }
1944 1944
1945 } } // namespace v8::internal 1945 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/liveedit.cc ('k') | src/log-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698