gdb 5

Tony Kimball alk@pobox.com
Tue Apr 17 11:25:00 GMT 2001


I'm wondering if these behaviours are indicative of a bug is .stabs,
or if there's something tricky going on:
When I 'main print symbols' in gdb 5.0, it goes into an infinite loop
and segvs. Here's where the output starts to loop:
 typedef class {
 public JNIEnv env_id;
 public jint num_frames;
 public JVMPI_CallFrame frames;
 JVMPI_CallTrace _ZN15JVMPI_CallTraceaSERKS_;
 void _ZN15JVMPI_CallTraceC2ERKS_;
 void _ZN15JVMPI_CallTraceC1ERKS_;
 void _ZN15JVMPI_CallTraceC2Ev;
 void _ZN15JVMPI_CallTraceC1Ev;
 } JVMPI_CallTrace; 
 typedef class {
 public jint event_type;
 public JNIEnv env_id;
 public union {
 public:
 class {...} class_load;
 class {...} class_unload;
 class {...} obj_alloc;
 class {...} thread_start;
 union {...} operator=(union {
 public:
 class {...} class_load;
 class {...} class_unload;
 class {...} obj_alloc;
 class {...} thread_start;
 union {...} operator=(union {
 public:
 class {...} class_load;
 class {...} class_unload;
 class {...} obj_alloc;
 class {...} thread_start;
 union {...} operator=(union {
 public:
 class {...} class_load;
 class {...} class_unload;
 class {...} obj_alloc;
 class {...} thread_start;
 union {...} operator=(union {
 public:
 class {...} class_load;
 class {...} class_unload;
 class {...} obj_alloc;
 class {...} thread_start;
 union {...} operator=(union {
...
ad nauseam.
I also notice that there seems to be a loop in the type for klass in
main:
850	 main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec);
(gdb) p *klass
p *klass
2ドル = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
---Type <return> to continue, or q <return> to quit---
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {
 _vptr. = 0x8054890}, static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static c---Type <return> to continue, or q <return> to quit---
lass$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
 static class$ = {<Object> = {<_JvObjectPrefix> = {_vptr. = 0x8054890}, 
et cetera.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /