Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] infinite loop on DSF Disassembly View

This is already fixed in CDT 7.0.
Please see also
 
Bug 302505 - [disassembly view] Infinite loop retrieving disassembly
 
HTH,
Toni


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of ??
Sent: Thursday, May 13, 2010 12:04 PM
To: cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev] infinite loop on DSF Disassembly View

Hi guys:
We found there is an infinite loop on DSF Disassembly View

[Version]
      Linux 64 platform, Eclipse 3.5.2  CDT 6.0.2
      GNU gdb 6.6

[Re-production]
      1. Create a C project
      2. Select "C/C++ attach to application" in debug configurations
      3. Switch to the DSF launcher
      4. Attach to a running application
      5. Open the DSF Disassembly View when target is attached
      6. Switch between the stack frames in the Debug View
      7. There is  infinite loop on DSF Disassembly View when we click on a certain stack frame
[Observation]
     DSF Disassembly keeps sending the 2 commands to gdb in turns:
088,058 6165-data-disassemble -f tsk/tskport.c -l 1191 -n 14 -- 0
088,080 6166-data-disassemble -f tsk/tskport.c -l 1191 -n 28 -- 1
088,105 6167-data-disassemble -f tsk/tskport.c -l 1191 -n 14 -- 0
.............

[Our effort] 
  We explore the DSF Disassembly source code and achives little.
  There are too much recursive invoktions during retriving disassemble data.

 It seems that the code requires something for start address to match, but the data from gdb never match the criteria.
 Maybe the inproper data cause the infinite loop.

[Question]

  It is a bug of DSF Disassembly?

Regards
邢云


Below is the gdb output for the 2 commands, pls check it up if needed:



971,150 (gdb) 
971,168 4747-data-disassemble -f tsk/tskport.c -l 1191 -n 14 -- 0
971,171 4747^done,asm_insns=[{address="0x00002aaaaccfb870",func-name="tsknewthread",offset="0",inst=\
"mov    %rbp,0xffffffffffffffd8(%rsp)"},{address="0x00002aaaaccfb875",func-name="tsknewthread",offse\
t="5",inst="mov    %r12,0xffffffffffffffe0(%rsp)"},{address="0x00002aaaaccfb87a",func-name="tsknewth\
read",offset="10",inst="mov    %rdi,%rbp"},{address="0x00002aaaaccfb87d",func-name="tsknewthread",of\
fset="13",inst="mov    %r15,0xfffffffffffffff8(%rsp)"},{address="0x00002aaaaccfb882",func-name="tskn\
ewthread",offset="18",inst="mov    %rbx,0xffffffffffffffd0(%rsp)"},{address="0x00002aaaaccfb887",fun\
c-name="tsknewthread",offset="23",inst="mov    %r13,0xffffffffffffffe8(%rsp)"},{address="0x00002aaaa\
ccfb88c",func-name="tsknewthread",offset="28",inst="mov    %r14,0xfffffffffffffff0(%rsp)"},{address=\
"0x00002aaaaccfb891",func-name="tsknewthread",offset="33",inst="sub    $0x98,%rsp"},{address="0x0000\
2aaaaccfb898",func-name="tsknewthread",offset="40",inst="movq   $0x0,0x50(%rsp)"},{address="0x00002a\
aaaccfb8a1",func-name="tsknewthread",offset="49",inst="mov    (%rdi),%rax"},{address="0x00002aaaaccf\
b8a4",func-name="tsknewthread",offset="52",inst="lea    0x30(%rsp),%r15"},{address="0x00002aaaaccfb8\
a9",func-name="tsknewthread",offset="57",inst="mov    %r15,%rsi"},{address="0x00002aaaaccfb8ac",func\
-name="tsknewthread",offset="60",inst="mov    %rax,0x18(%rsp)"},{address="0x00002aaaaccfb8b1",func-n\
ame="tsknewthread",offset="65",inst="mov    0x8(%rdi),%rdx"}]
971,171 (gdb) 
971,179 4748-data-disassemble -f tsk/tskport.c -l 1191 -n 28 -- 1
971,187 4748^done,asm_insns=[src_and_asm_line={line="1021",file="tsk/tskport.c",line_asm_insn=[{addr\
ess="0x00002aaaaccfb870",func-name="tsknewthread",offset="0",inst="mov    %rbp,0xffffffffffffffd8(%r\
sp)"},{address="0x00002aaaaccfb875",func-name="tsknewthread",offset="5",inst="mov    %r12,0xffffffff\
ffffffe0(%rsp)"},{address="0x00002aaaaccfb87d",func-name="tsknewthread",offset="13",inst="mov    %r1\
5,0xfffffffffffffff8(%rsp)"},{address="0x00002aaaaccfb882",func-name="tsknewthread",offset="18",inst\
="mov    %rbx,0xffffffffffffffd0(%rsp)"},{address="0x00002aaaaccfb887",func-name="tsknewthread",offs\
et="23",inst="mov    %r13,0xffffffffffffffe8(%rsp)"},{address="0x00002aaaaccfb88c",func-name="tsknew\
thread",offset="28",inst="mov    %r14,0xfffffffffffffff0(%rsp)"},{address="0x00002aaaaccfb891",func-\
name="tsknewthread",offset="33",inst="sub    $0x98,%rsp"}]},src_and_asm_line={line="1022",file="tsk/\
tskport.c",line_asm_insn=[]},src_and_asm_line={line="1023",file="tsk/tskport.c",line_asm_insn=[]},sr\
c_and_asm_line={line="1024",file="tsk/tskport.c",line_asm_insn=[{address="0x00002aaaaccfb898",func-n\
ame="tsknewthread",offset="40",inst="movq   $0x0,0x50(%rsp)"}]},src_and_asm_line={line="1025",file="\
tsk/tskport.c",line_asm_insn=[{address="0x00002aaaaccfb87a",func-name="tsknewthread",offset="10",ins\
t="mov    %rdi,%rbp"}]},src_and_asm_line={line="1026",file="tsk/tskport.c",line_asm_insn=[{address="\
0x00002aaaaccfb8a1",func-name="tsknewthread",offset="49",inst="mov    (%rdi),%rax"},{address="0x0000\
2aaaaccfb8ac",func-name="tsknewthread",offset="60",inst="mov    %rax,0x18(%rsp)"}]},src_and_asm_line\
={line="1027",file="tsk/tskport.c",line_asm_insn=[{address="0x00002aaaaccfb8b5",func-name="tsknewthr\
ead",offset="69",inst="mov    0x30(%rdi),%r14d"}]},src_and_asm_line={line="1028",file="tsk/tskport.c\
",line_asm_insn=[{address="0x00002aaaaccfb8b1",func-name="tsknewthread",offset="65",inst="mov    0x8\
(%rdi),%rdx"},{address="0x00002aaaaccfb8b9",func-name="tsknewthread",offset="73",inst="mov    %rdx,0\
x20(%rsp)"}]},src_and_asm_line={line="1029",file="tsk/tskport.c",line_asm_insn=[]},src_and_asm_line=\
{line="1030",file="tsk/tskport.c",line_asm_insn=[{address="0x00002aaaaccfb8be",func-name="tsknewthre\
ad",offset="78",inst="mov    0x10(%rdi),%rcx"},{address="0x00002aaaaccfb8c5",func-name="tsknewthread\
",offset="85",inst="mov    %rcx,0x28(%rsp)"}]},src_and_asm_line={line="1031",file="tsk/tskport.c",li\
ne_asm_insn=[]},src_and_asm_line={line="1032",file="tsk/tskport.c",line_asm_insn=[]},src_and_asm_lin\
e={line="1033",file="tsk/tskport.c",line_asm_insn=[]},src_and_asm_line={line="1034",file="tsk/tskpor\
t.c",line_asm_insn=[{address="0x00002aaaaccfb8a4",func-name="tsknewthread",offset="52",inst="lea    \
0x30(%rsp),%r15"},{address="0x00002aaaaccfb8a9",func-name="tsknewthread",offset="57",inst="mov    %r\
15,%rsi"},{address="0x00002aaaaccfb8c2",func-name="tsknewthread",offset="82",inst="mov    %rdx,%rdi"\
},{address="0x00002aaaaccfb8ca",func-name="tsknewthread",offset="90",inst="callq  0x2aaaaccf74e0 <ts\
k_excp_stack_setup@plt>"}]},src_and_asm_line={line="1035",file="tsk/tskport.c",line_asm_insn=[]},src\
_and_asm_line={line="1036",file="tsk/tskport.c",line_asm_insn=[{address="0x00002aaaaccfb8cf",func-na\
me="tsknewthread",offset="95",inst="mov    1391282(%rip),%r12        # 0x2aaaace4f388"},{address="0x\
00002aaaaccfb8d6",func-name="tsknewthread",offset="102",inst="mov    (%r12),%eax"},{address="0x00002\
aaaaccfb8da",func-name="tsknewthread",offset="106",inst="test   %eax,%eax"},{address="0x00002aaaaccf\
b8dc",func-name="tsknewthread",offset="108",inst="jne    0x2aaaaccfb9b4 <tsknewthread+324>"},{addres\
s="0x00002aaaaccfb9b4",func-name="tsknewthread",offset="324",inst="mov    1390805(%rip),%rcx        \
# 0x2aaaace4f290"},{address="0x00002aaaaccfb9c2",func-name="tsknewthread",offset="338",inst="mov    \
(%rcx),%rdx"},{address="0x00002aaaaccfb9c9",func-name="tsknewthread",offset="345",inst="and    $0x3f\
f,%ebx"},{address="0x00002aaaaccfb9cf",func-name="tsknewthread",offset="351",inst="mov    $0xba,%edi\
"},{address="0x00002aaaaccfb9d4",func-name="tsknewthread",offset="356",inst="xor    %eax,%eax"},{add\
ress="0x00002aaaaccfb9d6",func-name="tsknewthread",offset="358",inst="shl    $0x4,%rbx"},{address="0\
x00002aaaaccfb9da",func-name="tsknewthread",offset="362",inst="add    $0x10,%rbx"},{address="0x00002\
aaaaccfb9de",func-name="tsknewthread",offset="366",inst="add    (%rcx),%rbx"},{address="0x00002aaaac\
cfb9e1",func-name="tsknewthread",offset="369",inst="movl   $0x544e5a54,(%rbx)"},{address="0x00002aaa\
accfb9e7",func-name="tsknewthread",offset="375",inst="callq  0x2aaaaccf5900 <syscall@plt>"},{address\
="0x00002aaaaccfb9ec",func-name="tsknewthread",offset="380",inst="movl   $0x0,0x8(%rbx)"},{address="\
0x00002aaaaccfb9f3",func-name="tsknewthread",offset="387",inst="mov    %eax,0x4(%rbx)"},{address="0x\
00002aaaaccfb9f6",func-name="tsknewthread",offset="390",inst="mov    0x18(%rsp),%esi"},{address="0x0\
0002aaaaccfb9fa",func-name="tsknewthread",offset="394",inst="mov    %esi,0xc(%rbx)"},{address="0x000\
02aaaaccfb9fd",func-name="tsknewthread",offset="397",inst="jmpq   0x2aaaaccfb8e2 <tsknewthread+114>"\
}]}]
    


   



网易为中小企业免费提供企业邮箱(自主域名)

Back to the top