RFR(XS): 8248879: SA core file support on OSX has some bugs trying to locate the jvm libraries

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Wed Jul 15 03:54:56 UTC 2020


Hi Alex,

Yes, I understand this.
After some thinking, I doubt my suggestion to check all occurrences or 
"/bin/" is good. :)

Thanks,
Serguei

On 7/14/20 18:19, Alex Menkov wrote:
> Hi Serguei,
>
> On 07/14/2020 15:55, serguei.spitsyn at oracle.com wrote:
>> Hi Chris and Alex,
>>
>> I agree the last occurrence of "/bin/" is better than the first.
>> But I wonder if it makes sense to check all occurrences.
>
> The problem is strrstr (search for last occurrence) is not a part of 
> std C lib.
> So to avoid dependency on new library I suggested this simple 
> implementation using standard strstr.
>
> --alex
>
>>
>> Thanks,
>> Serguei
>>
>>
>> On 7/14/20 15:14, Alex Menkov wrote:
>>> Yes, you are right.
>>> This is not a function from strings.h
>>>
>>> Ok, you can leave strstr (and keep in mind that the path can't 
>>> contain "/bin/" other than jdk's bin) or implement the 
>>> functionality. It should be something simple like
>>>
>>> static const char* rstrstr(const char *str, const char *sub) {
>>>   const char *result = NULL;
>>>   for (const char *p = strstr(str, sub); p != NULL; p = strstr(p + 
>>> 1, sub)) {
>>>     result = p;
>>>   }
>>>   return result;
>>> }
>>>
>>> --alex
>>>
>>> On 07/14/2020 13:43, Chris Plummer wrote:
>>>> Actually it's not so easy. I don't see any other references to 
>>>> strrstr in our source. When I reference strstr, it gives a warning 
>>>> because it's not declared. The only man page I can find says to 
>>>> include sstring2.h, but this file does not exist. It also says to 
>>>> link with -lsstrings2.
>>>>
>>>> Chris
>>>>
>>>> On 7/14/20 1:37 PM, Chris Plummer wrote:
>>>>> Ok. I'll change both references to use strrstr.
>>>>>
>>>>> thanks,
>>>>>
>>>>> Chris
>>>>>
>>>>> On 7/14/20 1:11 PM, Alex Menkov wrote:
>>>>>> Hi Chris,
>>>>>>
>>>>>> I think it would be better to use strrstr to correctly handle 
>>>>>> paths like
>>>>>> /something/bin/jdk/bin/jhsdb
>>>>>>
>>>>>> And I'd updated
>>>>>> 358   char* posbin = strstr(execname, "/bin/java");
>>>>>> to use strrstr as well
>>>>>>
>>>>>> --alex
>>>>>>
>>>>>> On 07/14/2020 12:01, Chris Plummer wrote:
>>>>>>> Ping!
>>>>>>>
>>>>>>> On 7/6/20 9:31 PM, Chris Plummer wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> Please help review the following:
>>>>>>>>
>>>>>>>> http://cr.openjdk.java.net/~cjplummer/8248879/webrev.00/index.html
>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8248879
>>>>>>>>
>>>>>>>> The description of the problem and the fix are both in the CR.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>>
>>>>>>>> Chris
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>



More information about the serviceability-dev mailing list