< prev index next >

src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.h

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -32,14 +32,24 @@
 
 // data structures in this file mimic those of Solaris 8.0 - libproc's Pcontrol.h
 
 #define BUF_SIZE     (PATH_MAX + NAME_MAX + 1)
 
+// .eh_frame data
+typedef struct eh_frame_info {
+  uintptr_t library_base_addr;
+  uintptr_t v_addr;
+  unsigned char* data;
+} eh_frame_info;
+
 // list of shared objects
 typedef struct lib_info {
   char             name[BUF_SIZE];
   uintptr_t        base;
+  uintptr_t        exec_start;
+  uintptr_t        exec_end;
+  eh_frame_info    eh_frame;
   struct symtab*   symtab;
   int              fd;        // file descriptor for lib
   struct lib_info* next;
 } lib_info;
 

@@ -99,10 +109,14 @@
    int                num_threads;
    thread_info*       threads;   // head of thread list
    struct core_data*  core;      // data only used for core dumps, NULL for process
 };
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 int pathmap_open(const char* name);
 
 void print_debug(const char* format,...);
 void print_error(const char* format,...);
 bool is_debug();

@@ -121,6 +135,10 @@
 thread_info* add_thread_info(struct ps_prochandle* ph, lwpid_t lwp_id);
 
 // a test for ELF signature without using libelf
 bool is_elf_file(int fd);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif //_LIBPROC_IMPL_H_
< prev index next >