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

Side by Side Diff: src/log.cc

Issue 1207433002: Assertion failure when using --log-regexp (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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
« src/log.h ('K') | « src/log.h ('k') | no next file » | 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 "src/log.h" 5 #include "src/log.h"
6 6
7 #include <cstdarg> 7 #include <cstdarg>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 935 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 946
947 947
948 // Instantiate template methods. 948 // Instantiate template methods.
949 #define V(TimerName, expose) \ 949 #define V(TimerName, expose) \
950 template void TimerEventScope<TimerEvent##TimerName>::LogTimerEvent( \ 950 template void TimerEventScope<TimerEvent##TimerName>::LogTimerEvent( \
951 Logger::StartEnd se); 951 Logger::StartEnd se);
952 TIMER_EVENTS_LIST(V) 952 TIMER_EVENTS_LIST(V)
953 #undef V 953 #undef V
954 954
955 955
956 void Logger::LogRegExpSource(Handle<JSRegExp> regexp) { 956 void Logger::LogRegExpSource(Handle<JSRegExp> regexp,
957 Log::MessageBuilder& msg) {
957 // Prints "/" + re.source + "/" + 958 // Prints "/" + re.source + "/" +
958 // (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"") 959 // (re.global?"g":"") + (re.ignorecase?"i":"") + (re.multiline?"m":"")
959 Log::MessageBuilder msg(log_);
960 960
961 Handle<Object> source = Object::GetProperty( 961 Handle<Object> source = Object::GetProperty(
962 isolate_, regexp, "source").ToHandleChecked(); 962 isolate_, regexp, "source").ToHandleChecked();
963 if (!source->IsString()) { 963 if (!source->IsString()) {
964 msg.Append("no source"); 964 msg.Append("no source");
965 return; 965 return;
966 } 966 }
967 967
968 switch (regexp->TypeTag()) { 968 switch (regexp->TypeTag()) {
969 case JSRegExp::ATOM: 969 case JSRegExp::ATOM:
(...skipping 17 matching lines...) Expand all
987 isolate_, regexp, "ignoreCase").ToHandleChecked(); 987 isolate_, regexp, "ignoreCase").ToHandleChecked();
988 if (ignorecase->IsTrue()) { 988 if (ignorecase->IsTrue()) {
989 msg.Append('i'); 989 msg.Append('i');
990 } 990 }
991 // multiline flag 991 // multiline flag
992 Handle<Object> multiline = Object::GetProperty( 992 Handle<Object> multiline = Object::GetProperty(
993 isolate_, regexp, "multiline").ToHandleChecked(); 993 isolate_, regexp, "multiline").ToHandleChecked();
994 if (multiline->IsTrue()) { 994 if (multiline->IsTrue()) {
995 msg.Append('m'); 995 msg.Append('m');
996 } 996 }
997
998 msg.WriteToLogFile();
999 } 997 }
1000 998
1001 999
1002 void Logger::RegExpCompileEvent(Handle<JSRegExp> regexp, bool in_cache) { 1000 void Logger::RegExpCompileEvent(Handle<JSRegExp> regexp, bool in_cache) {
1003 if (!log_->IsEnabled() || !FLAG_log_regexp) return; 1001 if (!log_->IsEnabled() || !FLAG_log_regexp) return;
1004 Log::MessageBuilder msg(log_); 1002 Log::MessageBuilder msg(log_);
1005 msg.Append("regexp-compile,"); 1003 msg.Append("regexp-compile,");
1006 LogRegExpSource(regexp); 1004 LogRegExpSource(regexp, msg);
1007 msg.Append(in_cache ? ",hit" : ",miss"); 1005 msg.Append(in_cache ? ",hit" : ",miss");
1008 msg.WriteToLogFile(); 1006 msg.WriteToLogFile();
1009 } 1007 }
1010 1008
1011 1009
1012 void Logger::ApiNamedPropertyAccess(const char* tag, 1010 void Logger::ApiNamedPropertyAccess(const char* tag,
1013 JSObject* holder, 1011 JSObject* holder,
1014 Object* name) { 1012 Object* name) {
1015 DCHECK(name->IsName()); 1013 DCHECK(name->IsName());
1016 if (!log_->IsEnabled() || !FLAG_log_api) return; 1014 if (!log_->IsEnabled() || !FLAG_log_api) return;
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
1895 removeCodeEventListener(jit_logger_); 1893 removeCodeEventListener(jit_logger_);
1896 delete jit_logger_; 1894 delete jit_logger_;
1897 jit_logger_ = NULL; 1895 jit_logger_ = NULL;
1898 } 1896 }
1899 1897
1900 return log_->Close(); 1898 return log_->Close();
1901 } 1899 }
1902 1900
1903 } // namespace internal 1901 } // namespace internal
1904 } // namespace v8 1902 } // namespace v8
OLDNEW
« src/log.h ('K') | « src/log.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698