����Linux�Ż�
Linux����

Ƕ��ʽLinuxϵͳ��GDBԶ�̵��Ե�ʵ��

����ʱ��:2011-07-13 10:36:23��Դ:ChinaUnix����:linuxʹ����

����Զ�̵��Ի�����������GDB��Ŀ�������stub��ͬ���ɣ�����ͨ�����ڻ�TCP���ӡ�ʹ��GDB��׼�̴���Э��Эͬ������ʵ�ֶ�Ŀ����ϵ�ϵͳ�ں˺��ϲ�Ӧ�õļ�غ͵��Թ��ܡ�����stub��Ƕ��ʽϵͳ�е�һ�δ��룬��Ϊ������GDB��Ŀ������Գ�����һ��ý������ڡ�


������Ŀǰ���ԣ�Ƕ��ʽLinuxϵͳ�У���Ҫ������Զ�̵��Է������ֱ������ڲ�ͬ���ϵĵ��Թ�������ROM Monitor����Ŀ���������KGDB����ϵͳ�ں˺���gdbserver�����û��ռ���������ֵ��Է�����������Ҫ���ڣ�Ŀ���Զ�̵���stub �Ĵ�����ʽ�IJ�ͬ���������˼·��ʵ�ַ������Ǵ�����ͬ�ġ�


������������õ��ǵ���Ӧ�ó��򡣾��Dz��� gdb+gdbserver�ķ�ʽ���е��ԡ��ںܶ�����£��û���Ҫ��һ��Ӧ�ó�����з������ԣ��ر��Ǹ��ӵij��򡣲���GDB�������ԣ�����Ƕ��ʽϵͳ��Դ�����ԣ�һ�㲻��ֱ����Ŀ��ϵͳ�Ͻ��е��ԣ�ͨ������gdb+gdbserver�ķ�ʽ���е��ԡ� gdbserver��Ŀ��ϵͳ�����У�GDB���������������С�


������GDB���ԣ�Ŀ��ϵͳ�������gdbserver����������Ҳ���밲װGDB����һ��Linux���а��ж���һ���������е�GDB����������Ա����ֱ��ʹ�ø÷��а��е�GDB����Զ�̵��ԣ���Ҫ��ȡGDB��Դ����������armƽ̨��һ�������ã����±���õ���ӦGDB��GDB��Դ��������Դ� http: //ftp.cs.pu.edu.tw/linux/sourceware/gdb/releases/���أ����°汾Ϊgdb-6.4�����ص�ij��Ŀ¼���������ص��Լ����û�Ŀ¼��/home/vicky��


����������󣬽���/home/vickyĿ¼�����ñ��벽�����£�


����#tar jxvf gdb-6.4-tar-bz2

����#cd gdb-6.4

����#./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v

����#make


������һ����ʱ����ܻ������⣬��ʾһ��������(���庯�������ǵ���)parse error������unsignedǰ�߶���һ��”}”,����vi������һ�а���ɾ�������ˡ�


����#make install

����#export PATH=$PATH:/usr/local/arm-gdb


��������gdbserverĿ¼��


����#./configure --target=arm-linux –host=arm-linux

����#make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc


����(��һ��Ҫָ��arm-linux-gcc��λ��)


����û�д���Ļ�����gdbserverĿ¼������gdbserver��ִ���ļ���������д��flash�ĸ��ļ�ϵͳ��������ͨ��nfs mount�ķ�ʽ�����ԡ�ֻҪ��֤gdbserver���ڿ����������о��С�


��������Ϳ�����gdb+gdbserver�������ǿ������ϵij����ˡ���Ŀ���������gdbserver����ʵ��������������minicom�£��ҵ� RedHat Linuxװ��vmware�µġ�������minicom��#mount 192.168.2.100:/ /tmp������(�������-o nolock���Բ��ӣ�������һ��ִ�е÷�������Щ)��hello��gdbserver����λ��Linux��Ŀ¼�£���������Ŀ¼���ڵ��������/tmp Ŀ¼�¡�


����Ҫ����gdb���ԣ�����Ҫ��Ŀ��ϵͳ������gdbserver������gdbserver����Ŀ¼���������


����(minicom��)

����#cd /tmp

����#./gdbserver 192.168.2.100:2345 hello


����192.168.2.100Ϊ������IP����Ŀ��ϵͳ��2345�˿ڿ�����һ�����Խ��̣�helloΪҪ���Եij���


����������ʾ��


����Process /tmp/hello created: pid=80

����Listening on port 2345

����(��һ���ն���)

����#cd /

����#export PATH=$PATH:/usr/local/arm-gdb/bin

����#arm-linux-gdb hello

����(gdb) target remote 192.168.2.223:2345

����(192.168.2.223������IP)


����������ʾ��


����Remote debugging using 192.168.2.223:2345

����[New thread 80]

����[Switching to thread 80]

����0x40002a90 in ??()


����ͬʱ��minicom����ʾ��


����Remote debugging from host 192.168.2.100

����(gdb)


�������ӳɹ�����ʱ��Ϳ����������GDB������list��run��next��step��break�Ƚ��г�������ˡ�


�����������ͨ��nfs mount��tftp�ķ�ʽ��ֻ���������ϵ��Ժú����ص������������У�����д���Ҫ����������̣�������˵����Щ����ֻ���ڿ������ϵ��ԡ����Ա��߲�����gdbserver��Զ�̵��Է�ʽ��ϣ���Դ�ҵ��Գ������á�