This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: debugging threads


I was able to resolve my issue.....almost.

Through trial and error I figured out that I had to set these commands in .gdbinit:
	set solib-absolute-prefix ......
	set solib-search-path .......
	handle SIG32 nostop noprint pass
	handle SIG33 nostop noprint pass

Once I did that I was able to set and reach breakpoints in threads, and was able to continue to successful completion.

However, for some reason Eclipse won't show me in the source when it reaches a breakpoint in a thread. However I can still continue to successful completion.

I still get gdb traces that indicate it doesn't know where it is when I hit the thread breakpoint (see 758,425 below):
	758,174 ~"[New Thread 334]\n"
	758,180 ~"[Switching to Thread 334]\n"
	758,197 15*stopped,reason="breakpoint-hit",bkptno="1",thread-id="2",frame={addr="0x000087c8",func="h\
	ello_thread_main",args=[],file="hello.c",fullname="/home/heyendal/build/projects/CM/hello/hello.c",l\
	ine="50"}
	758,198 (gdb) 
	758,414 16-thread-select 1
	758,414 17-stack-info-depth 11
	758,425 16^done,new-thread-id="1",frame={level="0",addr="0x400365b8",func="??",args=[]}
	758,425 (gdb) 
	758,443 17^done,depth="1"
	758,443 (gdb)

So this is obviously not a crosstools-ng issue so I will take this up elsewhere, or just use gdb directly.

/carl



> -----Original Message-----
> From: crossgcc-owner@sourceware.org [mailto:crossgcc-
> owner@sourceware.org] On Behalf Of Heyendal, Carl
> Sent: February 28, 2011 3:12 PM
> To: crossgcc@sourceware.org
> Subject: debugging threads
> 
> Hi,
> 
> I'm having trouble debugging threads remotely with Eclipse/GDB.
> 
> I can set breakpoints and step with Eclipse with no problems when I
> only have one main loop, but as soon as I add a thread, set a break
> point in the thread, and then step once after the breakpoint, GDB gets
> confused and stops running....indicating this message: "Cannot find
> bounds of current function". You can see this message at the bottom of
> the GDB output below.
> 
> When I run my small test app standalone without GDB, the app runs fine
> to completion. So I'm assuming there's a problem with my libs when
> debugging. I have double checked that I point to sys-root on the host
> filesystem, and that the pthread lib is on both the host and the target
> filesystems. Also, all the libs are NOT stripped.
> 
> Note below that on line 456,245 when it hits a break point in the
> thread it doesn't know what function it's in. Just before that however
> when it hit the breakpoint, it did know that it was in the new thread
> by name.
> 
> I'm using crosstools-ng 1.5.2 which I know it's a bit old but it should
> work.
> 
> Appreciate any help.
> 
> thanx
> /carl h.
> 
> 
> 
> 442,165 1source ~/.gdbinit
> 442,166 &"source ~/.gdbinit\n"
> 442,177 1^done
> 442,177 (gdb)
> 442,178 2-file-exec-and-symbols
> /home/heyendal/build/projects/CM/hello/hello
> 442,180 2^done
> 442,180 (gdb)
> 442,181 3-environment-cd /home/heyendal/build/projects/CM/hello
> 442,181 3^done
> 442,181 (gdb)
> 442,186 4-gdb-set auto-solib-add on
> 442,186 4^done
> 442,186 (gdb)
> 442,187 5-gdb-set solib-search-path /usr/local/xtools/arm-unknown-
> linux-uclibcgnueabi/arm-unknown-li\
> nux-uclibcgnueabi/sys-root/lib
> 442,187 5^done
> 442,187 (gdb)
> 442,188 6-environment-directory /home/heyendal/build/projects/CM/hello
> /home/heyendal/build/projects\
> /CM/hello/.settings
> 442,189 6^done,source-
> path="/home/heyendal/build/projects/CM/hello:/home/heyendal/build/proje
> cts/CM/\
> hello/.settings:$cdir:$cwd"
> 442,189 (gdb)
> 442,190 7-target-select remote 192.168.52.167:5001
> 442,203 ~"[New Thread 336]\n"
> 442,222 7^connected,thread-
> id="1",frame={addr="0x400009e0",func="_start",args=[],from="/usr/local/
> xt\
> ools/arm-unknown-linux-uclibcgnueabi/arm-unknown-linux-
> uclibcgnueabi/sys-root/lib/ld-uClibc.so.0"}
> 442,223 (gdb)
> 442,224 8-break-insert -t main
> 442,226
> 8^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="
> 0x000086e8",func="mai\
> n",file="hello.c",fullname="/home/heyendal/build/projects/CM/hello/hell
> o.c",line="21",times="0"}
> 442,226 (gdb)
> 442,228 9-exec-continue
> 442,228 9^running
> 442,230 (gdb)
> 442,363 9*stopped,thread-
> id="1",frame={addr="0x000086e8",func="main",args=[],file="hello.c",full
> name\
> ="/home/heyendal/build/projects/CM/hello/hello.c",line="21"}
> 442,363 (gdb)
> 442,382 10-thread-list-ids
> 442,386 10^done,thread-ids={thread-id="1"},number-of-threads="1"
> 442,387 (gdb)
> 442,420 11-thread-select 1
> 442,420 12-stack-info-depth 11
> 442,422 11^done,new-thread-
> id="1",frame={level="0",addr="0x000086e8",func="main",args=[],file="hel
> lo\
> .c",fullname="/home/heyendal/build/projects/CM/hello/hello.c",line="21"
> }
> 442,423 (gdb)
> 442,423 12^done,depth="1"
> 442,424 (gdb)
> 442,425 13-stack-list-frames
> 442,425
> 13^done,stack=[frame={level="0",addr="0x000086e8",func="main",file="hel
> lo.c",fullname="/home\
> /heyendal/build/projects/CM/hello/hello.c",line="21"}]
> 442,425 (gdb)
> 442,628 14info threads
> 442,629 &"info threads\n"
> 442,651 ~"* 1 Thread 336  main () at hello.c:21\n"
> 442,652 14^done
> 442,652 (gdb)
> 449,292 15-break-insert
> /home/heyendal/build/projects/CM/hello/hello.c:48
> 449,292
> 15^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr
> ="0x00008794",func="h\
> ello_thread_main",file="hello.c",fullname="/home/heyendal/build/project
> s/CM/hello/hello.c",line="48"\
> ,times="0"}
> 449,292 (gdb)
> 450,969 16-exec-continue
> 450,970 16^running
> 450,973 (gdb)
> 456,004 ~"[New Thread 338]\n"
> 456,007 ~"[Switching to Thread 338]\n"
> 456,020 16*stopped,reason="breakpoint-hit",bkptno="2",thread-
> id="2",frame={addr="0x00008794",func="h\
> ello_thread_main",args=[],file="hello.c",fullname="/home/heyendal/build
> /projects/CM/hello/hello.c",l\
> ine="48"}
> 456,020 (gdb)
> 456,229 17-thread-select 1
> 456,230 18-stack-info-depth 11
> 456,245 17^done,new-thread-
> id="1",frame={level="0",addr="0x400365b8",func="??",args=[]}
> 456,246 (gdb)
> 456,267 18^done,depth="1"
> 456,267 (gdb)
> 493,200 19-exec-next 1
> 493,201 19^running
> 493,205 (gdb)
> 493,205 &"Cannot find bounds of current function\n"
> 493,205 19^error,msg="Cannot find bounds of current function"
> 493,205 (gdb)
> 
> 
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
> 



--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]