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

Unified Diff: src/gdb-jit.cc

Issue 387533003: Remove AddCode and RemoveCode GDB JIT entry hooks. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: One miro fix. Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gdb-jit.h ('k') | src/mark-compact.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gdb-jit.cc
diff --git a/src/gdb-jit.cc b/src/gdb-jit.cc
index 5ca6dfd1851e208a09e05485ed5768ba0b474039..f3a5cb55a266add09583dc392338c1e24596d32c 100644
--- a/src/gdb-jit.cc
+++ b/src/gdb-jit.cc
@@ -2063,8 +2063,6 @@ void GDBJITInterface::AddCode(const char* name,
GDBJITInterface::CodeTag tag,
Script* script,
CompilationInfo* info) {
- if (!FLAG_gdbjit) return;
-
base::LockGuard<base::Mutex> lock_guard(mutex.Pointer());
DisallowHeapAllocation no_gc;
@@ -2109,45 +2107,6 @@ void GDBJITInterface::AddCode(const char* name,
}
-void GDBJITInterface::AddCode(GDBJITInterface::CodeTag tag,
- const char* name,
- Code* code) {
- if (!FLAG_gdbjit) return;
-
- EmbeddedVector<char, 256> buffer;
- StringBuilder builder(buffer.start(), buffer.length());
-
- builder.AddString(Tag2String(tag));
- if ((name != NULL) && (*name != '\0')) {
- builder.AddString(": ");
- builder.AddString(name);
- } else {
- builder.AddFormatted(": code object %p", static_cast<void*>(code));
- }
-
- AddCode(builder.Finalize(), code, tag, NULL, NULL);
-}
-
-
-void GDBJITInterface::AddCode(GDBJITInterface::CodeTag tag,
- Name* name,
- Code* code) {
- if (!FLAG_gdbjit) return;
- if (name != NULL && name->IsString()) {
- AddCode(tag, String::cast(name)->ToCString(DISALLOW_NULLS).get(), code);
- } else {
- AddCode(tag, "", code);
- }
-}
-
-
-void GDBJITInterface::AddCode(GDBJITInterface::CodeTag tag, Code* code) {
- if (!FLAG_gdbjit) return;
-
- AddCode(tag, "", code);
-}
-
-
void GDBJITInterface::RemoveCode(Code* code) {
if (!FLAG_gdbjit) return;
@@ -2199,10 +2158,27 @@ static void RegisterDetailedLineInfo(Code* code, LineInfo* line_info) {
void GDBJITInterface::EventHandler(const v8::JitCodeEvent* event) {
if (!FLAG_gdbjit) return;
switch (event->type) {
- case v8::JitCodeEvent::CODE_ADDED:
+ case v8::JitCodeEvent::CODE_ADDED: {
+ Code* code = Code::GetCodeFromTargetAddress(
+ reinterpret_cast<Address>(event->code_start));
+ if (code->kind() == Code::OPTIMIZED_FUNCTION ||
+ code->kind() == Code::FUNCTION) {
+ break;
+ }
+ EmbeddedVector<char, 256> buffer;
+ StringBuilder builder(buffer.start(), buffer.length());
+ builder.AddSubstring(event->name.str, static_cast<int>(event->name.len));
+ AddCode(builder.Finalize(), code, NON_FUNCTION, NULL, NULL);
+ break;
+ }
case v8::JitCodeEvent::CODE_MOVED:
- case v8::JitCodeEvent::CODE_REMOVED:
break;
+ case v8::JitCodeEvent::CODE_REMOVED: {
+ Code* code = Code::GetCodeFromTargetAddress(
+ reinterpret_cast<Address>(event->code_start));
+ RemoveCode(code);
+ break;
+ }
case v8::JitCodeEvent::CODE_ADD_LINE_POS_INFO: {
LineInfo* line_info = reinterpret_cast<LineInfo*>(event->user_data);
line_info->SetPosition(static_cast<intptr_t>(event->line_info.offset),
« no previous file with comments | « src/gdb-jit.h ('k') | src/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698