mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
Merge
This commit is contained in:
commit
78339229bb
40 changed files with 626 additions and 318 deletions
|
@ -1885,6 +1885,9 @@ bool os::dll_build_name(char* buffer, size_t buflen,
|
|||
} else if (strchr(pname, *os::path_separator()) != NULL) {
|
||||
int n;
|
||||
char** pelements = split_path(pname, &n);
|
||||
if (pelements == NULL) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0 ; i < n ; i++) {
|
||||
// really shouldn't be NULL but what the heck, check can't hurt
|
||||
if (pelements[i] == NULL || strlen(pelements[i]) == 0) {
|
||||
|
@ -5787,16 +5790,6 @@ int os::loadavg(double loadavg[], int nelem) {
|
|||
|
||||
//---------------------------------------------------------------------------------
|
||||
|
||||
static address same_page(address x, address y) {
|
||||
intptr_t page_bits = -os::vm_page_size();
|
||||
if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits))
|
||||
return x;
|
||||
else if (x > y)
|
||||
return (address)(intptr_t(y) | ~page_bits) + 1;
|
||||
else
|
||||
return (address)(intptr_t(y) & page_bits);
|
||||
}
|
||||
|
||||
bool os::find(address addr, outputStream* st) {
|
||||
Dl_info dlinfo;
|
||||
memset(&dlinfo, 0, sizeof(dlinfo));
|
||||
|
@ -5822,8 +5815,8 @@ bool os::find(address addr, outputStream* st) {
|
|||
|
||||
if (Verbose) {
|
||||
// decode some bytes around the PC
|
||||
address begin = same_page(addr-40, addr);
|
||||
address end = same_page(addr+40, addr);
|
||||
address begin = clamp_address_in_page(addr-40, addr, os::vm_page_size());
|
||||
address end = clamp_address_in_page(addr+40, addr, os::vm_page_size());
|
||||
address lowest = (address) dlinfo.dli_sname;
|
||||
if (!lowest) lowest = (address) dlinfo.dli_fbase;
|
||||
if (begin < lowest) begin = lowest;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue