mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8008555: Debugging code in compiled method sometimes leaks memory
Support for strings that have same life-time as code that uses them. Reviewed-by: kvn, twisti
This commit is contained in:
parent
d824b431de
commit
8f1814d874
16 changed files with 174 additions and 121 deletions
|
@ -4262,8 +4262,13 @@ void MacroAssembler::verify_oop(Register reg, const char* s) {
|
|||
if (!VerifyOops) return;
|
||||
|
||||
// Pass register number to verify_oop_subroutine
|
||||
char* b = new char[strlen(s) + 50];
|
||||
sprintf(b, "verify_oop: %s: %s", reg->name(), s);
|
||||
const char* b = NULL;
|
||||
{
|
||||
ResourceMark rm;
|
||||
stringStream ss;
|
||||
ss.print("verify_oop: %s: %s", reg->name(), s);
|
||||
b = code_string(ss.as_string());
|
||||
}
|
||||
BLOCK_COMMENT("verify_oop {");
|
||||
#ifdef _LP64
|
||||
push(rscratch1); // save r10, trashed by movptr()
|
||||
|
@ -4297,9 +4302,14 @@ RegisterOrConstant MacroAssembler::delayed_value_impl(intptr_t* delayed_value_ad
|
|||
{ Label L;
|
||||
testptr(tmp, tmp);
|
||||
if (WizardMode) {
|
||||
const char* buf = NULL;
|
||||
{
|
||||
ResourceMark rm;
|
||||
stringStream ss;
|
||||
ss.print("DelayedValue="INTPTR_FORMAT, delayed_value_addr[1]);
|
||||
buf = code_string(ss.as_string());
|
||||
}
|
||||
jcc(Assembler::notZero, L);
|
||||
char* buf = new char[40];
|
||||
sprintf(buf, "DelayedValue="INTPTR_FORMAT, delayed_value_addr[1]);
|
||||
STOP(buf);
|
||||
} else {
|
||||
jccb(Assembler::notZero, L);
|
||||
|
@ -4343,9 +4353,13 @@ void MacroAssembler::verify_oop_addr(Address addr, const char* s) {
|
|||
|
||||
// Address adjust(addr.base(), addr.index(), addr.scale(), addr.disp() + BytesPerWord);
|
||||
// Pass register number to verify_oop_subroutine
|
||||
char* b = new char[strlen(s) + 50];
|
||||
sprintf(b, "verify_oop_addr: %s", s);
|
||||
|
||||
const char* b = NULL;
|
||||
{
|
||||
ResourceMark rm;
|
||||
stringStream ss;
|
||||
ss.print("verify_oop_addr: %s", s);
|
||||
b = code_string(ss.as_string());
|
||||
}
|
||||
#ifdef _LP64
|
||||
push(rscratch1); // save r10, trashed by movptr()
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue