Am doing Linux kernel debug w/JTAG. When I load my debug configurations all goes well. Symbols from a debug kernel build get loaded and all seems well. But if I try to set a CCS breakpoint in a source file it gets added to the Breapoints dialog, but it's not checked. When I check it I get a popup dialog from the Breakpoint Manager that says:
No code is associated with "net/ipv4/af_netlink.c", line 991 in "/netshare/vmlinux"
There are a couple of issues here. First, the path on the filename is not correct. The correct symbol information (obtained from looking at the directory structure, and also corroborated by dumping all debug information in the vmlinux module) is in a file which has a path of "net/netlink/af_netlink.c".
Second, if I then go into the disassembly window and key in the name of a function in af_netlink.c, say netlink_unicast, it will properly bring up the dissasembly window. From the disassembly window I can then set a CCS breakpoint at the first instruction of this function. If I then run the target and subsequently run a test program that causes the breakpoint to be hit the proper source code file is loaded and I can then step into/step over with problems. But if I go down a few lines and then set another CCS breakpoint I get the same behaviour as described in the first paragraph, namely, the breakpoint is added to the breakpoint dialog without being checked, and if I check it I get the same message. Clearly, there is code associated with the file/line mentioned in the popup, I can see it in the dissasembly window.
There is a workaround, just use the disassembly window to set the brealpoints...but this is problemmatic for a number of reasons...suppose the user doesn't really know the target assembler well enough...suppose, due to optimization, even if you know assembler well enough you can't find the correct place to set the breakpoint, etc.,...
In short, the workaround has it's own issues, not to mention the fact that it's a productivity killer...;(...