public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Move getCompilationUnit from Dwfl into DwflModule. Date: Thu, 05 Jun 2008 15:29:00 -0000 [thread overview] Message-ID: <20080605152934.24772.qmail@sourceware.org> (raw) The branch, master has been updated via 0ef023547a5ee68baa4f7c6fc375dac6f886ddfb (commit) from a6241011ef6b3209bcd45876deb53d62baae19dc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0ef023547a5ee68baa4f7c6fc375dac6f886ddfb Author: Andrew Cagney <cagney@redhat.com> Date: Thu Jun 5 11:21:38 2008 -0400 Move getCompilationUnit from Dwfl into DwflModule. frysk-sys/lib/dwfl/ChangeLog 2008-06-05 Andrew Cagney <cagney@redhat.com> * Dwarf.java (Dwarf(long)): Remember that the pointer isn't owned. (finalize()): Check that the pointer is owned. * Dwfl.java (dwfl_addrdie(long)): Delete. (getCompilationUnit()): Use DwflModule.getCompilationUnit(). * jni/Dwfl.cxx: Update. * cni/Dwfl.cxx: Update. * DwflModule.java (getCompilationUnit()): New. (getBias(), getDwarf()): New. (dwflModuleAddrdie, dwflModuleGetDwarf, dwflModuleGetBias): New. * cni/DwflModule.cxx: Update. * jni/DwflModule.cxx: Update. * TestDwarfDie.java: Add more logging. ----------------------------------------------------------------------- Summary of changes: frysk-sys/lib/dwfl/ChangeLog | 13 ++++++++ frysk-sys/lib/dwfl/Dwarf.java | 39 ++++++------------------ frysk-sys/lib/dwfl/Dwfl.java | 8 +++-- frysk-sys/lib/dwfl/DwflDieBias.java | 3 +- frysk-sys/lib/dwfl/DwflModule.java | 30 ++++++++++++++++++ frysk-sys/lib/dwfl/TestDwarfDie.java | 6 ++- frysk-sys/lib/dwfl/cni/Dwarf.cxx | 4 +- frysk-sys/lib/dwfl/cni/Dwfl.cxx | 14 --------- frysk-sys/lib/dwfl/cni/DwflModule.cxx | 27 ++++++++++++++++- frysk-sys/lib/dwfl/jni/Dwarf.cxx | 15 +++++---- frysk-sys/lib/dwfl/jni/Dwfl.cxx | 11 ------- frysk-sys/lib/dwfl/jni/DwflModule.cxx | 53 +++++++++++++++++++++++++-------- 12 files changed, 139 insertions(+), 84 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 131249f..4f85078 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,5 +1,18 @@ 2008-06-05 Andrew Cagney <cagney@redhat.com> + * Dwarf.java (Dwarf(long)): Remember that the pointer isn't owned. + (finalize()): Check that the pointer is owned. + * Dwfl.java (dwfl_addrdie(long)): Delete. + (getCompilationUnit()): Use DwflModule.getCompilationUnit(). + * jni/Dwfl.cxx: Update. + * cni/Dwfl.cxx: Update. + * DwflModule.java (getCompilationUnit()): New. + (getBias(), getDwarf()): New. + (dwflModuleAddrdie, dwflModuleGetDwarf, dwflModuleGetBias): New. + * cni/DwflModule.cxx: Update. + * jni/DwflModule.cxx: Update. + * TestDwarfDie.java: Add more logging. + * TestElf.java (checkAuxv): Use indexed word accessors. 2008-06-04 Andrew Cagney <cagney@redhat.com> diff --git a/frysk-sys/lib/dwfl/Dwarf.java b/frysk-sys/lib/dwfl/Dwarf.java index 8779d0e..2c93a44 100644 --- a/frysk-sys/lib/dwfl/Dwarf.java +++ b/frysk-sys/lib/dwfl/Dwarf.java @@ -43,42 +43,22 @@ import java.util.LinkedList; public class Dwarf { + private final boolean owner; private long pointer; public Dwarf(Elf elf, DwarfCommand cmd, ElfSection section){ dwarf_begin_elf(elf.getPointer(), cmd.getValue(), (section == null) ? 0 : section.getPointer()); + owner = true; } public Dwarf(String file, DwarfCommand cmd){ dwarf_begin(file, cmd.getValue()); + owner = true; } - // public DwarfDie[] getFunctions(){ - // long[] vals = dwarf_get_functions(); - // if(vals == null || vals.length == 0) - // return new DwarfDie[0]; - // - // DwarfDie[] dwarfs = new DwarfDie[vals.length]; - // for(int i = 0; i < vals.length; i++){ - // if(vals[i] == 0) - // dwarfs[i] = null; - // else - // dwarfs[i] = new DwarfDie(vals[i]); - // } - // - // return dwarfs; - // } - // - // public DwarfDie getDIEByAddr(long address){ - // long val = dwarf_addrdie(address); - // if(val == 0) - // return null; - // - // return new DwarfDie(val); - // } - - protected Dwarf(long pointer){ + Dwarf(long pointer){ this.pointer = pointer; + owner = false; } protected long getPointer(){ @@ -86,8 +66,12 @@ public class Dwarf { } protected void finalize(){ - dwarf_end(); + if (owner && pointer != 0) { + dwarfEnd(pointer); + pointer = 0; + } } + private static native int dwarfEnd(long pointer); public String[] getSourceFiles(){ return get_source_files(); @@ -110,7 +94,4 @@ public class Dwarf { protected native void dwarf_begin(String file, int command); protected native String[] get_source_files(); protected native LinkedList get_cu_by_name(String name); - protected native int dwarf_end(); - // protected native long[] dwarf_get_functions(); - // protected native long dwarf_addrdie(long addr); } diff --git a/frysk-sys/lib/dwfl/Dwfl.java b/frysk-sys/lib/dwfl/Dwfl.java index 73cbd33..79a83ba 100644 --- a/frysk-sys/lib/dwfl/Dwfl.java +++ b/frysk-sys/lib/dwfl/Dwfl.java @@ -94,7 +94,11 @@ public class Dwfl { } public DwflDieBias getCompilationUnit (long addr) { - return dwfl_addrdie(addr); + DwflModule module = getModule(addr); + if (module == null) { + return null; + } + return module.getCompilationUnit(addr); } long getPointer () { @@ -304,6 +308,4 @@ public class Dwfl { // protected native long[] dwfl_get_modules(); // protected native long[] dwfl_getdwarf(); protected native long dwfl_getsrc (long addr); - - protected native DwflDieBias dwfl_addrdie (long addr); } diff --git a/frysk-sys/lib/dwfl/DwflDieBias.java b/frysk-sys/lib/dwfl/DwflDieBias.java index eeb61c2..7b9d790 100644 --- a/frysk-sys/lib/dwfl/DwflDieBias.java +++ b/frysk-sys/lib/dwfl/DwflDieBias.java @@ -42,8 +42,7 @@ package lib.dwfl; import java.util.ArrayList; import java.util.Iterator; -public class DwflDieBias -{ +public class DwflDieBias { public final DwarfDie die; public final long bias; diff --git a/frysk-sys/lib/dwfl/DwflModule.java b/frysk-sys/lib/dwfl/DwflModule.java index aca5a9d..0a28094 100644 --- a/frysk-sys/lib/dwfl/DwflModule.java +++ b/frysk-sys/lib/dwfl/DwflModule.java @@ -146,4 +146,34 @@ public class DwflModule { return get_cu_dies(); } private native LinkedList get_cu_dies(); + + public DwflDieBias getCompilationUnit(long addr) { + // Find the die, grab the bias as it flies by. + long diePointer = dwflModuleAddrdie(pointer, addr); + DwarfDie die = parent.factory.makeDie(diePointer, this); + // XXX: Should just pass the module. + return new DwflDieBias(die, getBias()); + } + private static native long dwflModuleAddrdie(long pointer, long addr); + + public Dwarf getDwarf() { + if (dwarf == null) { + long dwarfPointer = dwflModuleGetDwarf(pointer); + if (dwarfPointer != 0) { + dwarf = new Dwarf(dwarfPointer); + } + } + return dwarf; + } + private Dwarf dwarf; + private static native long dwflModuleGetDwarf(long pointer); + + public long getBias() { + if (bias == -1) { + bias = dwflModuleGetBias(pointer); + } + return bias; + } + private long bias = -1; + private static native long dwflModuleGetBias(long pointer); } diff --git a/frysk-sys/lib/dwfl/TestDwarfDie.java b/frysk-sys/lib/dwfl/TestDwarfDie.java index 35342e4..f127e52 100644 --- a/frysk-sys/lib/dwfl/TestDwarfDie.java +++ b/frysk-sys/lib/dwfl/TestDwarfDie.java @@ -90,8 +90,10 @@ public class TestDwarfDie extends TestCase { assertNotNull(dwfl); long addr = LocalMemory.getCodeAddr(); - DwarfDie cuDie = dwfl.getCompilationUnit(addr).die; - assertNotNull(cuDie); + DwflDieBias dwflDie = dwfl.getCompilationUnit(addr); + assertNotNull("dwflDie", dwflDie); + DwarfDie cuDie = dwflDie.die; + assertNotNull("cuDie", cuDie); DwarfDie die = cuDie.getScopes(addr)[0]; DwflModule dwflModule = die.getModule(); diff --git a/frysk-sys/lib/dwfl/cni/Dwarf.cxx b/frysk-sys/lib/dwfl/cni/Dwarf.cxx index 02d00a2..3a41775 100644 --- a/frysk-sys/lib/dwfl/cni/Dwarf.cxx +++ b/frysk-sys/lib/dwfl/cni/Dwarf.cxx @@ -53,7 +53,7 @@ using namespace java::lang; -#define DWARF_POINTER (::Dwarf *) this->pointer +#define DWARF_POINTER ((::Dwarf *) pointer) void lib::dwfl::Dwarf::dwarf_begin_elf(jlong elf, jint command, @@ -172,6 +172,6 @@ lib::dwfl::Dwarf::get_source_files() } jint -lib::dwfl::Dwarf::dwarf_end(){ +lib::dwfl::Dwarf::dwarfEnd(jlong pointer){ return ::dwarf_end(DWARF_POINTER); } diff --git a/frysk-sys/lib/dwfl/cni/Dwfl.cxx b/frysk-sys/lib/dwfl/cni/Dwfl.cxx index a258287..bba5dd0 100644 --- a/frysk-sys/lib/dwfl/cni/Dwfl.cxx +++ b/frysk-sys/lib/dwfl/cni/Dwfl.cxx @@ -207,17 +207,3 @@ jlong lib::dwfl::Dwfl::dwfl_getsrc(jlong addr){ return (jlong) ::dwfl_getsrc(DWFL_POINTER, (::Dwarf_Addr) addr); } - -lib::dwfl::DwflDieBias * -lib::dwfl::Dwfl::dwfl_addrdie(jlong addr){ - Dwarf_Addr bias; - Dwarf_Die *die = ::dwfl_addrdie(DWFL_POINTER, (::Dwarf_Addr) addr, &bias); - - if(die == NULL) - return NULL; - - lib::dwfl::DwflModule *module = lib::dwfl::Dwfl::getModule(addr); - lib::dwfl::DwarfDie *dwdie = factory->makeDie((jlong) die, module); - - return new lib::dwfl::DwflDieBias(dwdie, (jlong)bias); -} diff --git a/frysk-sys/lib/dwfl/cni/DwflModule.cxx b/frysk-sys/lib/dwfl/cni/DwflModule.cxx index 66dfc30..33ea0b4 100644 --- a/frysk-sys/lib/dwfl/cni/DwflModule.cxx +++ b/frysk-sys/lib/dwfl/cni/DwflModule.cxx @@ -62,7 +62,7 @@ #include "java/util/LinkedList.h" -#define DWFL_MODULE_POINTER (Dwfl_Module *) this->pointer +#define DWFL_MODULE_POINTER ((Dwfl_Module *) pointer) lib::dwfl::ModuleElfBias* lib::dwfl::DwflModule::module_getelf() @@ -473,3 +473,28 @@ lib::dwfl::DwflModule::get_cu_dies() return list; } + +jlong +lib::dwfl::DwflModule::dwflModuleAddrdie(jlong pointer, jlong addr) { + Dwarf_Addr bias; + ::Dwarf_Die *die = ::dwfl_module_addrdie(DWFL_MODULE_POINTER, + (Dwarf_Addr)addr, &bias); + return (jlong)die; +} + +jlong +lib::dwfl::DwflModule::dwflModuleGetDwarf(jlong pointer) { + Dwarf_Addr bias; + ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER, &bias); + return (jlong)dwarf; +} + +jlong +lib::dwfl::DwflModule::dwflModuleGetBias(jlong pointer) { + Dwarf_Addr bias; + ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER, &bias); + if (dwarf != NULL) + return (jlong) bias; + else + return -1; +} diff --git a/frysk-sys/lib/dwfl/jni/Dwarf.cxx b/frysk-sys/lib/dwfl/jni/Dwarf.cxx index 4a9bbf4..b4eafdf 100644 --- a/frysk-sys/lib/dwfl/jni/Dwarf.cxx +++ b/frysk-sys/lib/dwfl/jni/Dwarf.cxx @@ -53,7 +53,8 @@ using namespace java::lang; using namespace java::util; -#define DWARF_POINTER ((::Dwarf *) GetPointer(env)) +#define DWARF_POINTER_FIXME ((::Dwarf *) GetPointer(env)) +#define DWARF_POINTER ((::Dwarf *) pointer) void lib::dwfl::Dwarf::dwarf_begin_elf(jnixx::env env, jlong elf, jint command, @@ -83,10 +84,10 @@ lib::dwfl::Dwarf::get_cu_by_name(jnixx::env env, String name) { Dwarf_Die cudie_mem; size_t hsize; - while (dwarf_nextcu(DWARF_POINTER, old_offset = offset, + while (dwarf_nextcu(DWARF_POINTER_FIXME, old_offset = offset, &offset, &hsize, NULL, NULL, NULL) == 0) { - Dwarf_Die *cudie = dwarf_offdie(DWARF_POINTER, old_offset + hsize, + Dwarf_Die *cudie = dwarf_offdie(DWARF_POINTER_FIXME, old_offset + hsize, &cudie_mem); const char *die_name = dwarf_diename (cudie); String die_name_string = String::NewStringUTF(env, die_name); @@ -118,7 +119,7 @@ lib::dwfl::Dwarf::get_source_files(jnixx::env env) { // Allocate Dwarf_Files for each compile unit cu_cnt = 0; - while (dwarf_nextcu(DWARF_POINTER, old_offset = offset, &offset, + while (dwarf_nextcu(DWARF_POINTER_FIXME, old_offset = offset, &offset, &hsize, NULL, NULL, NULL) == 0) { cu_cnt += 1; } @@ -128,10 +129,10 @@ lib::dwfl::Dwarf::get_source_files(jnixx::env env) { // Fill Dwarf_Files cu_cnt = 0; offset = 0; - while (dwarf_nextcu(DWARF_POINTER, old_offset = offset, &offset, + while (dwarf_nextcu(DWARF_POINTER_FIXME, old_offset = offset, &offset, &hsize, NULL, NULL, NULL) == 0) { size_t fcnt = 0; - Dwarf_Die *cudie = dwarf_offdie (DWARF_POINTER, old_offset + hsize, &cudie_mem); + Dwarf_Die *cudie = dwarf_offdie (DWARF_POINTER_FIXME, old_offset + hsize, &cudie_mem); if (dwarf_getsrcfiles (cudie, &files[cu_cnt], &fcnt) != 0) continue; nfiles[cu_cnt] = fcnt; @@ -161,6 +162,6 @@ lib::dwfl::Dwarf::get_source_files(jnixx::env env) { } jint -lib::dwfl::Dwarf::dwarf_end(jnixx::env env){ +lib::dwfl::Dwarf::dwarfEnd(jnixx::env env, long pointer){ return ::dwarf_end(DWARF_POINTER); } diff --git a/frysk-sys/lib/dwfl/jni/Dwfl.cxx b/frysk-sys/lib/dwfl/jni/Dwfl.cxx index 216b0c1..50d7357 100644 --- a/frysk-sys/lib/dwfl/jni/Dwfl.cxx +++ b/frysk-sys/lib/dwfl/jni/Dwfl.cxx @@ -190,14 +190,3 @@ jlong lib::dwfl::Dwfl::dwfl_getsrc(jnixx::env env, jlong addr){ return (jlong) ::dwfl_getsrc(DWFL_POINTER_FIXME, (::Dwarf_Addr) addr); } - -lib::dwfl::DwflDieBias -lib::dwfl::Dwfl::dwfl_addrdie(jnixx::env env, jlong addr){ - Dwarf_Addr bias; - Dwarf_Die *die = ::dwfl_addrdie(DWFL_POINTER_FIXME, (::Dwarf_Addr) addr, &bias); - if(die == NULL) - return lib::dwfl::DwflDieBias(env, NULL); - lib::dwfl::DwflModule module = lib::dwfl::Dwfl::getModule(env, addr); - lib::dwfl::DwarfDie dwdie = GetFactory(env).makeDie(env, (jlong) die, module); - return lib::dwfl::DwflDieBias::New(env, dwdie, (jlong)bias); -} diff --git a/frysk-sys/lib/dwfl/jni/DwflModule.cxx b/frysk-sys/lib/dwfl/jni/DwflModule.cxx index a32750e..039916c 100644 --- a/frysk-sys/lib/dwfl/jni/DwflModule.cxx +++ b/frysk-sys/lib/dwfl/jni/DwflModule.cxx @@ -47,12 +47,13 @@ using namespace java::lang; -#define DWFL_MODULE_POINTER ((Dwfl_Module *) GetPointer(env)) +#define DWFL_MODULE_POINTER_FIXME ((Dwfl_Module *) GetPointer(env)) +#define DWFL_MODULE_POINTER ((Dwfl_Module *) pointer) lib::dwfl::ModuleElfBias lib::dwfl::DwflModule::module_getelf(jnixx::env env) { Dwarf_Addr bias = 0; - ::Elf *elf = dwfl_module_getelf(DWFL_MODULE_POINTER, &bias); + ::Elf *elf = dwfl_module_getelf(DWFL_MODULE_POINTER_FIXME, &bias); if(elf == NULL) return lib::dwfl::ModuleElfBias(env, NULL); @@ -70,7 +71,7 @@ lib::dwfl::DwflModule::getLines(jnixx::env env, String jfilename, jstringUTFChars filename = jstringUTFChars(env, jfilename); ::Dwfl_Line **srcsp = 0; size_t nsrcs = 0; - int result = ::dwfl_module_getsrc_file(DWFL_MODULE_POINTER, + int result = ::dwfl_module_getsrc_file(DWFL_MODULE_POINTER_FIXME, filename.elements(), lineno, column, &srcsp, &nsrcs); if (result < 0) { @@ -111,7 +112,7 @@ lib::dwfl::DwflModule::getSymbol(jnixx::env env, jlong address, Dwarf_Addr addr = (Dwarf_Addr) address; GElf_Sym closest_sym; - const char* methName = dwfl_module_addrsym(DWFL_MODULE_POINTER, addr, + const char* methName = dwfl_module_addrsym(DWFL_MODULE_POINTER_FIXME, addr, &closest_sym, NULL); String jMethodName; @@ -126,13 +127,13 @@ lib::dwfl::DwflModule::getSymbol(jnixx::env env, jlong address, void lib::dwfl::DwflModule::getSymtab(jnixx::env env, lib::dwfl::SymbolBuilder symbolBuilder) { - int count = ::dwfl_module_getsymtab(DWFL_MODULE_POINTER); + int count = ::dwfl_module_getsymtab(DWFL_MODULE_POINTER_FIXME); if (count < 0) return; for (int i = 0; i < count; ++i) { ::GElf_Sym sym; - char const* name = ::dwfl_module_getsym(DWFL_MODULE_POINTER, + char const* name = ::dwfl_module_getsym(DWFL_MODULE_POINTER_FIXME, i, &sym, NULL); String jname = String::NewStringUTF(env, name); ::builder_callout(env, symbolBuilder, jname, &sym); @@ -145,7 +146,7 @@ lib::dwfl::DwflModule::getPLTEntries(jnixx::env env, lib::dwfl::SymbolBuilder symbolBuilder) { GElf_Addr bias; - ::Elf *elf = ::dwfl_module_getelf(DWFL_MODULE_POINTER, &bias); + ::Elf *elf = ::dwfl_module_getelf(DWFL_MODULE_POINTER_FIXME, &bias); ::GElf_Ehdr ehdr; if (::gelf_getehdr (elf, &ehdr) == NULL) return; @@ -288,10 +289,10 @@ void lib::dwfl::DwflModule::getSymbolByName(jnixx::env env, String jname, lib::dwfl::SymbolBuilder symbolBuilder) { jstringUTFChars name = jstringUTFChars(env, jname); - int numSymbols = dwfl_module_getsymtab(DWFL_MODULE_POINTER); + int numSymbols = dwfl_module_getsymtab(DWFL_MODULE_POINTER_FIXME); for (int i = 0; i < numSymbols; i++) { GElf_Sym sym; - const char *symName = dwfl_module_getsym(DWFL_MODULE_POINTER, i, &sym, 0); + const char *symName = dwfl_module_getsym(DWFL_MODULE_POINTER_FIXME, i, &sym, 0); if (!::strcmp(name.elements(), symName)) { String jsym = String::NewStringUTF(env, symName); ::builder_callout(env, symbolBuilder, jsym, &sym); @@ -304,7 +305,7 @@ void lib::dwfl::DwflModule::setUserData(jnixx::env env, Object data) { void **userdata = NULL; fprintf(stderr, "user data is %p\n", userdata); - dwfl_module_info(DWFL_MODULE_POINTER, &userdata, NULL, NULL, NULL, NULL, NULL, + dwfl_module_info(DWFL_MODULE_POINTER_FIXME, &userdata, NULL, NULL, NULL, NULL, NULL, NULL); *userdata = data._object; } @@ -320,14 +321,14 @@ lib::dwfl::DwflModule::getDebuginfo(jnixx::env env) { } Dwarf_Addr bias; - if (dwfl_module_getdwarf (DWFL_MODULE_POINTER, &bias) == NULL) { + if (dwfl_module_getdwarf (DWFL_MODULE_POINTER_FIXME, &bias) == NULL) { // Case where debuginfo not installed or available return String(env, NULL); } // Get the path to debuginfo file const char* debuginfo_fname = NULL; - dwfl_module_info (DWFL_MODULE_POINTER, + dwfl_module_info (DWFL_MODULE_POINTER_FIXME, NULL, NULL, NULL, NULL, NULL, NULL, &debuginfo_fname); @@ -375,7 +376,7 @@ each_pubname(Dwarf *dwarf, Dwarf_Global *gl, void* data) { void lib::dwfl::DwflModule::get_pubnames(jnixx::env env) { Dwarf_Addr bias; - ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER, &bias); + ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER_FIXME, &bias); if (dwarf != NULL) { ::each_pubname_context ctx(env, *this, bias); @@ -397,3 +398,29 @@ lib::dwfl::DwflModule::offdie(jnixx::env env, jlong die, jlong offset) { return dwarfDie; } + +jlong +lib::dwfl::DwflModule::dwflModuleAddrdie(jnixx::env env, jlong pointer, + jlong addr) { + Dwarf_Addr bias; + ::Dwarf_Die *die = ::dwfl_module_addrdie(DWFL_MODULE_POINTER, + (Dwarf_Addr)addr, &bias); + return (jlong)die; +} + +jlong +lib::dwfl::DwflModule::dwflModuleGetDwarf(jnixx::env env, jlong pointer) { + Dwarf_Addr bias; + ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER, &bias); + return (jlong)dwarf; +} + +jlong +lib::dwfl::DwflModule::dwflModuleGetBias(jnixx::env env, jlong pointer) { + Dwarf_Addr bias; + ::Dwarf* dwarf = ::dwfl_module_getdwarf(DWFL_MODULE_POINTER, &bias); + if (dwarf != NULL) + return (jlong) bias; + else + return -1; +} hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-06-05 15:29 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080605152934.24772.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).