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

Unified Diff: experimental/visual_studio_plugin/src/NaClVsx.DebugHelpers/DwarfParser.cpp

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 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
Index: experimental/visual_studio_plugin/src/NaClVsx.DebugHelpers/DwarfParser.cpp
diff --git a/experimental/visual_studio_plugin/src/NaClVsx.DebugHelpers/DwarfParser.cpp b/experimental/visual_studio_plugin/src/NaClVsx.DebugHelpers/DwarfParser.cpp
deleted file mode 100644
index 0d111797e44a6b28339017aee8d707633c9cbeb3..0000000000000000000000000000000000000000
--- a/experimental/visual_studio_plugin/src/NaClVsx.DebugHelpers/DwarfParser.cpp
+++ /dev/null
@@ -1,293 +0,0 @@
-// Copyright 2009 The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can
-// be found in the LICENSE file.
-
-#include <gcroot.h>
-
-#include "dwarf_reader/dwarf_vm.h"
-#include "elf_reader/elf_object.h"
-
-#include "src/NaClVsx.DebugHelpers/DwarfParser.h"
-
-
-using System::IntPtr;
-using System::Runtime::InteropServices::GCHandle;
-using System::Runtime::InteropServices::GCHandleType;
-using System::Runtime::InteropServices::Marshal;
-
-namespace NaClVsx {
-
-class DwarfParserImpl : public dwarf_reader::IDwarfReader {
- public:
-
- explicit DwarfParserImpl(gcroot<NaClVsx::IDwarfReader^> target)
- : target_(target) {}
-
- //
- // Implementation of IDwarfReader
- //
- virtual void *StartCompilationUnit(
- uint64 offset,
- uint8 address_size,
- uint8 offset_size,
- uint64 cu_length,
- uint8 dwarf_version) {
- target_->StartCompilationUnit();
- return NULL;
- }
-
- virtual void EndCompilationUnit(void *ctx, uint64 offset) {
- target_->EndCompilationUnit();
- }
-
- virtual void *StartDIE(void *ctx,
- uint64 parent,
- uint64 offset,
- dwarf2reader::DwarfTag tag) {
- target_->StartDIE(parent, offset, static_cast<DwarfTag>(tag));
-
- return NULL;
- }
-
- virtual void EndDIE(void *ctx, uint64 offset) {
- target_->EndDIE(offset);
- }
-
- virtual void ProcessAttributeUnsigned(void *ctx,
- uint64 offset,
- uint64 parent,
- dwarf2reader::DwarfAttribute attr,
- dwarf2reader::DwarfForm form,
- uint64 data) {
- target_->ProcessAttribute(
- offset,
- parent,
- static_cast<DwarfAttribute>(attr),
- data);
- }
-
- virtual void ProcessAttributeSigned(void *ctx,
- uint64 offset,
- uint64 parent,
- dwarf2reader::DwarfAttribute attr,
- dwarf2reader::DwarfForm form,
- int64 data) {
- target_->ProcessAttribute(
- offset,
- parent,
- static_cast<DwarfAttribute>(attr),
- data);
- }
-
- virtual void ProcessAttributeReference(void *ctx,
- uint64 offset,
- uint64 parent,
- dwarf2reader::DwarfAttribute attr,
- dwarf2reader::DwarfForm form,
- uint64 data) {
- target_->ProcessAttribute(
- offset,
- parent,
- static_cast<DwarfAttribute>(attr),
- gcnew DwarfReference(data));
- }
-
- virtual void ProcessAttributeBuffer(void *ctx,
- uint64 offset,
- uint64 parent,
- dwarf2reader::DwarfAttribute attr,
- dwarf2reader::DwarfForm form,
- const char* data,
- uint64 len) {
- array<System::Byte>^ arr =
- gcnew array<System::Byte>(static_cast<int>(len));
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- Marshal::Copy(
- IntPtr(const_cast<char*>(data)), arr, 0, static_cast<int>(len));
-
- target_->ProcessAttribute(
- offset,
- parent,
- static_cast<DwarfAttribute>(attr),
- arr);
- }
-
- virtual void ProcessAttributeString(void *ctx,
- uint64 offset,
- uint64 parent,
- dwarf2reader::DwarfAttribute attr,
- dwarf2reader::DwarfForm form,
- const char* data) {
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- System::String^ str =
- Marshal::PtrToStringAnsi(IntPtr(const_cast<char*>(data)));
-
- target_->ProcessAttribute(
- offset,
- parent,
- static_cast<DwarfAttribute>(attr),
- str);
- }
-
- virtual void DefineDir(void *ctx, const char *name, uint32 dir_num) {
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- target_->DefineDir(
- Marshal::PtrToStringAnsi(IntPtr(const_cast<char*>(name))),
- dir_num);
- }
-
- virtual void DefineFile(void *ctx, const char *name, int32 file_num,
- uint32 dir_num, uint64 mod_time,
- uint64 length) {
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- target_->DefineFile(
- Marshal::PtrToStringAnsi(IntPtr(const_cast<char*>(name))),
- file_num,
- dir_num);
- }
-
- virtual void AddLine(void *ctx,
- uint64 address,
- uint64 length,
- uint32 file_num,
- uint32 line_num,
- uint32 column_num) {
- target_->AddLine(address, length, file_num, line_num, column_num);
- }
-
- virtual void AddLocListEntry(uint64 offset,
- bool is_first_entry,
- uint64 lowPc,
- uint64 highPc,
- const void* data,
- size_t dataSize) {
- array<System::Byte>^ arr =
- gcnew array<System::Byte>(static_cast<int>(dataSize));
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- Marshal::Copy(
- IntPtr(const_cast<void*>(data)), arr, 0, static_cast<int>(dataSize));
-
- target_->AddLocListEntry(offset, is_first_entry, lowPc, highPc, arr);
- }
-
- virtual bool BeginCfiEntry(
- size_t offset,
- uint64 address,
- uint64 length,
- uint8 version,
- const char* augmentation,
- unsigned return_address) {
- return target_->BeginCfiEntry(
- address);
- }
-
- virtual bool AddCfiRule(
- uint64 address,
- int reg,
- CFI_RuleType ruleType,
- int base_register,
- int32 offset,
- const void* data,
- uint32_t len) {
- // NOTE: using const_cast because Marshal doesn't support const ptrs.
- void* void_data = const_cast<void*>(data);
- array<System::Byte>^ arr = nullptr;
- if (data && len) {
- gcnew array<System::Byte>(static_cast<int>(len));
- Marshal::Copy(IntPtr(void_data), arr, 0, static_cast<int>(len));
- }
-
- return target_->AddCfiRule(
- address,
- reg,
- (NaClVsx::IDwarfReader::CfiRuleType)ruleType,
- base_register,
- offset,
- arr);
- }
-
- virtual bool EndCfiEntry() {
- return target_->EndCfiEntry();
- }
-
- virtual void AddRangeListEntry(uint64 offset,
- uint64 base_address,
- uint64 low_pc,
- uint64 high_pc) {
- target_->AddRangeListEntry(offset, base_address, low_pc, high_pc);
- }
-
- private:
- gcroot<NaClVsx::IDwarfReader^> target_;
-};
-
- class DwarfVmImpl : public dwarf_reader::IDwarfVM {
- public:
- explicit DwarfVmImpl(gcroot<NaClVsx::IDwarfVM^> vm) : target_(vm) {}
-
- virtual uint32_t BitWidth() {
- return target_->BitWidth();
- }
-
- virtual bool IsLSB() {
- return target_->IsLSB();
- }
-
- virtual void ErrorString(const char *str) {
- target_->ErrorString(
- Marshal::PtrToStringAnsi(IntPtr(const_cast<char*>(str))));
- }
-
- virtual uint64_t ReadRegister(int reg_number) {
- return target_->ReadRegister(reg_number);
- }
-
- virtual uint64_t ReadMemory(uint64_t address, int count) {
- return target_->ReadMemory(address, count);
- }
-
- virtual uint64_t ReadFrameBase() {
- return target_->ReadFrameBase();
- }
-
- private:
- gcroot<NaClVsx::IDwarfVM^> target_;
- };
-
-
-
-
- void DwarfParser::DwarfParseElf(
- System::String^ filename,
- IDwarfReader^ reader ) {
- elf_reader::ElfObject elf;
- DwarfParserImpl parse = DwarfParserImpl(gcroot<IDwarfReader^>(reader));
-
- IntPtr hString = Marshal::StringToHGlobalAnsi(filename);
- bool result = elf.Load(reinterpret_cast<char*>(hString.ToPointer()));
- Marshal::FreeHGlobal(hString);
-
- if (result) {
- dwarf_reader::DwarfParseElf(&elf, &parse);
- } else {
- throw gcnew System::IO::FileLoadException("Could not load " + filename);
- }
- }
-
- uint64_t DwarfParser::DwarfParseVM(
- IDwarfVM^ vm,
- array<System::Byte>^ data) {
- DwarfVmImpl vmImpl = DwarfVmImpl(gcroot<IDwarfVM^>(vm));
- GCHandle^ hData = GCHandle::Alloc(data, GCHandleType::Pinned);
- IntPtr pData = hData->AddrOfPinnedObject();
-
- uint64_t result = dwarf_reader::DwarfParseVM(
- &vmImpl,
- reinterpret_cast<uint8_t*>(pData.ToPointer()),
- data->Length);
-
- hData->Free();
- return result;
- }
-} // namespace NaClVsx
-

Powered by Google App Engine
This is Rietveld 408576698