505 static bool dll_build_name(char* buffer, size_t size, |
505 static bool dll_build_name(char* buffer, size_t size, |
506 const char* pathname, const char* fname); |
506 const char* pathname, const char* fname); |
507 |
507 |
508 // Symbol lookup, find nearest function name; basically it implements |
508 // Symbol lookup, find nearest function name; basically it implements |
509 // dladdr() for all platforms. Name of the nearest function is copied |
509 // dladdr() for all platforms. Name of the nearest function is copied |
510 // to buf. Distance from its base address is returned as offset. |
510 // to buf. Distance from its base address is optionally returned as offset. |
511 // If function name is not found, buf[0] is set to '\0' and offset is |
511 // If function name is not found, buf[0] is set to '\0' and offset is |
512 // set to -1. |
512 // set to -1 (if offset is non-NULL). |
513 static bool dll_address_to_function_name(address addr, char* buf, |
513 static bool dll_address_to_function_name(address addr, char* buf, |
514 int buflen, int* offset); |
514 int buflen, int* offset); |
515 |
515 |
516 // Locate DLL/DSO. On success, full path of the library is copied to |
516 // Locate DLL/DSO. On success, full path of the library is copied to |
517 // buf, and offset is set to be the distance between addr and the |
517 // buf, and offset is optionally set to be the distance between addr |
518 // library's base address. On failure, buf[0] is set to '\0' and |
518 // and the library's base address. On failure, buf[0] is set to '\0' |
519 // offset is set to -1. |
519 // and offset is set to -1 (if offset is non-NULL). |
520 static bool dll_address_to_library_name(address addr, char* buf, |
520 static bool dll_address_to_library_name(address addr, char* buf, |
521 int buflen, int* offset); |
521 int buflen, int* offset); |
522 |
522 |
523 // Find out whether the pc is in the static code for jvm.dll/libjvm.so. |
523 // Find out whether the pc is in the static code for jvm.dll/libjvm.so. |
524 static bool address_is_in_vm(address addr); |
524 static bool address_is_in_vm(address addr); |