GDBJIT: Use runtime_zone to fix --gdbjit_full
R=yangguo@chromium.org BUG=v8:2608 Review URL: https://codereview.chromium.org/13813014 Patch from Haitao Feng <haitao.feng@intel.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
96220f984f
commit
4623e71123
@ -1019,9 +1019,9 @@ class CodeDescription BASE_EMBEDDED {
|
|||||||
|
|
||||||
#if defined(__ELF)
|
#if defined(__ELF)
|
||||||
static void CreateSymbolsTable(CodeDescription* desc,
|
static void CreateSymbolsTable(CodeDescription* desc,
|
||||||
|
Zone* zone,
|
||||||
ELF* elf,
|
ELF* elf,
|
||||||
int text_section_index) {
|
int text_section_index) {
|
||||||
Zone* zone = desc->info()->zone();
|
|
||||||
ELFSymbolTable* symtab = new(zone) ELFSymbolTable(".symtab", zone);
|
ELFSymbolTable* symtab = new(zone) ELFSymbolTable(".symtab", zone);
|
||||||
ELFStringTable* strtab = new(zone) ELFStringTable(".strtab");
|
ELFStringTable* strtab = new(zone) ELFStringTable(".strtab");
|
||||||
|
|
||||||
@ -1789,8 +1789,9 @@ bool UnwindInfoSection::WriteBodyInternal(Writer* w) {
|
|||||||
|
|
||||||
#endif // V8_TARGET_ARCH_X64
|
#endif // V8_TARGET_ARCH_X64
|
||||||
|
|
||||||
static void CreateDWARFSections(CodeDescription* desc, DebugObject* obj) {
|
static void CreateDWARFSections(CodeDescription* desc,
|
||||||
Zone* zone = desc->info()->zone();
|
Zone* zone,
|
||||||
|
DebugObject* obj) {
|
||||||
if (desc->IsLineInfoAvailable()) {
|
if (desc->IsLineInfoAvailable()) {
|
||||||
obj->AddSection(new(zone) DebugInfoSection(desc), zone);
|
obj->AddSection(new(zone) DebugInfoSection(desc), zone);
|
||||||
obj->AddSection(new(zone) DebugAbbrevSection(desc), zone);
|
obj->AddSection(new(zone) DebugAbbrevSection(desc), zone);
|
||||||
@ -1915,8 +1916,7 @@ static void UnregisterCodeEntry(JITCodeEntry* entry) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static JITCodeEntry* CreateELFObject(CodeDescription* desc) {
|
static JITCodeEntry* CreateELFObject(CodeDescription* desc, Zone* zone) {
|
||||||
Zone* zone = desc->info()->zone();
|
|
||||||
ZoneScope zone_scope(zone, DELETE_ON_EXIT);
|
ZoneScope zone_scope(zone, DELETE_ON_EXIT);
|
||||||
#ifdef __MACH_O
|
#ifdef __MACH_O
|
||||||
MachO mach_o;
|
MachO mach_o;
|
||||||
@ -1944,9 +1944,9 @@ static JITCodeEntry* CreateELFObject(CodeDescription* desc) {
|
|||||||
ELFSection::FLAG_ALLOC | ELFSection::FLAG_EXEC),
|
ELFSection::FLAG_ALLOC | ELFSection::FLAG_EXEC),
|
||||||
zone);
|
zone);
|
||||||
|
|
||||||
CreateSymbolsTable(desc, &elf, text_section_index);
|
CreateSymbolsTable(desc, zone, &elf, text_section_index);
|
||||||
|
|
||||||
CreateDWARFSections(desc, &elf);
|
CreateDWARFSections(desc, zone, &elf);
|
||||||
|
|
||||||
elf.Write(&w);
|
elf.Write(&w);
|
||||||
#endif
|
#endif
|
||||||
@ -2083,7 +2083,8 @@ void GDBJITInterface::AddCode(const char* name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
AddUnwindInfo(&code_desc);
|
AddUnwindInfo(&code_desc);
|
||||||
JITCodeEntry* entry = CreateELFObject(&code_desc);
|
Zone* zone = code->GetIsolate()->runtime_zone();
|
||||||
|
JITCodeEntry* entry = CreateELFObject(&code_desc, zone);
|
||||||
ASSERT(!IsLineInfoTagged(entry));
|
ASSERT(!IsLineInfoTagged(entry));
|
||||||
|
|
||||||
delete lineinfo;
|
delete lineinfo;
|
||||||
|
Loading…
Reference in New Issue
Block a user