| Index: src/log.cc
|
| ===================================================================
|
| --- src/log.cc (revision 13614)
|
| +++ src/log.cc (working copy)
|
| @@ -468,12 +468,15 @@
|
|
|
|
|
| void Logger::IssueCodeAddedEvent(Code* code,
|
| + Handle<Script> script,
|
| const char* name,
|
| size_t name_len) {
|
| JitCodeEvent event;
|
| + memset(&event, 0, sizeof(event));
|
| event.type = JitCodeEvent::CODE_ADDED;
|
| event.code_start = code->instruction_start();
|
| event.code_len = code->instruction_size();
|
| + event.script = v8::Handle<v8::Script>(ToApi<v8::Script>(script));
|
| event.name.str = name;
|
| event.name.len = name_len;
|
|
|
| @@ -512,7 +515,41 @@
|
| code_event_handler_(&event);
|
| }
|
|
|
| +void Logger::IssueAddCodeLinePosInfoEvent(
|
| + void* jit_handler_data,
|
| + int pc_offset,
|
| + int position,
|
| + JitCodeEvent::PositionType position_type) {
|
| + JitCodeEvent event;
|
| + memset(&event, 0, sizeof(event));
|
| + event.type = JitCodeEvent::CODE_ADD_LINE_POS_INFO;
|
| + event.user_data = jit_handler_data;
|
| + event.line_info.offset = pc_offset;
|
| + event.line_info.pos = position;
|
| + event.line_info.position_type = position_type;
|
|
|
| + code_event_handler_(&event);
|
| +}
|
| +
|
| +void* Logger::IssueStartCodePosInfoEvent() {
|
| + JitCodeEvent event;
|
| + memset(&event, 0, sizeof(event));
|
| + event.type = JitCodeEvent::CODE_START_LINE_INFO_RECORDING;
|
| +
|
| + code_event_handler_(&event);
|
| + return event.user_data;
|
| +}
|
| +
|
| +void Logger::IssueEndCodePosInfoEvent(Code* code, void* jit_handler_data) {
|
| + JitCodeEvent event;
|
| + memset(&event, 0, sizeof(event));
|
| + event.type = JitCodeEvent::CODE_END_LINE_INFO_RECORDING;
|
| + event.code_start = code->instruction_start();
|
| + event.user_data = jit_handler_data;
|
| +
|
| + code_event_handler_(&event);
|
| +}
|
| +
|
| #define DECLARE_EVENT(ignore1, name) name,
|
| static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = {
|
| LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)
|
| @@ -881,7 +918,10 @@
|
| name_buffer_->AppendBytes(comment);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + IssueCodeAddedEvent(code,
|
| + Handle<Script>(),
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -921,7 +961,10 @@
|
| name_buffer_->AppendString(name);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + IssueCodeAddedEvent(code,
|
| + Handle<Script>(),
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -968,7 +1011,13 @@
|
| name_buffer_->AppendString(name);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + Handle<Script> script = shared->script()->IsScript()
|
| + ? Handle<Script>(Script::cast(shared->script()))
|
| + : Handle<Script>();
|
| + IssueCodeAddedEvent(code,
|
| + script,
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -1018,7 +1067,13 @@
|
| name_buffer_->AppendInt(line);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + Handle<Script> script = shared->script()->IsScript() ?
|
| + Handle<Script>(Script::cast(shared->script()))
|
| + : Handle<Script>();
|
| + IssueCodeAddedEvent(code,
|
| + script,
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -1059,7 +1114,10 @@
|
| name_buffer_->AppendInt(args_count);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + IssueCodeAddedEvent(code,
|
| + Handle<Script>(),
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -1097,7 +1155,10 @@
|
| name_buffer_->AppendString(source);
|
| }
|
| if (code_event_handler_ != NULL) {
|
| - IssueCodeAddedEvent(code, name_buffer_->get(), name_buffer_->size());
|
| + IssueCodeAddedEvent(code,
|
| + Handle<Script>(),
|
| + name_buffer_->get(),
|
| + name_buffer_->size());
|
| }
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) {
|
| @@ -1141,7 +1202,41 @@
|
| DeleteEventInternal(CODE_DELETE_EVENT, from);
|
| }
|
|
|
| +void Logger::CodeLinePosInfoAddPositionEvent(void* jit_handler_data,
|
| + int pc_offset,
|
| + int position) {
|
| + if (code_event_handler_ != NULL) {
|
| + IssueAddCodeLinePosInfoEvent(jit_handler_data,
|
| + pc_offset,
|
| + position,
|
| + JitCodeEvent::POSITION);
|
| + }
|
| +}
|
|
|
| +void Logger::CodeLinePosInfoAddStatementPositionEvent(void* jit_handler_data,
|
| + int pc_offset,
|
| + int position) {
|
| + if (code_event_handler_ != NULL) {
|
| + IssueAddCodeLinePosInfoEvent(jit_handler_data,
|
| + pc_offset,
|
| + position,
|
| + JitCodeEvent::STATEMENT_POSITION);
|
| + }
|
| +}
|
| +
|
| +void Logger::CodeStartLinePosInfoRecordEvent(PositionsRecorder* pos_recorder) {
|
| + if (code_event_handler_ != NULL) {
|
| + pos_recorder->AttachJITHandlerData(IssueStartCodePosInfoEvent());
|
| + }
|
| +}
|
| +
|
| +void Logger::CodeEndLinePosInfoRecordEvent(Code* code,
|
| + void* jit_handler_data) {
|
| + if (code_event_handler_ != NULL) {
|
| + IssueEndCodePosInfoEvent(code, jit_handler_data);
|
| + }
|
| +}
|
| +
|
| void Logger::SnapshotPositionEvent(Address addr, int pos) {
|
| if (!log_->IsEnabled()) return;
|
| if (FLAG_ll_prof) LowLevelSnapshotPositionEvent(addr, pos);
|
|
|