Andes Workshop
http://forum.andestech.com/

debug information
http://forum.andestech.com/viewtopic.php?f=16&t=545
Page 1 of 1

Author:  cindy [ Tue Mar 06, 2012 5:38 pm ]
Post subject:  debug information

我分享如何看debug information。

下面有幾個檔案
a.c
Code:
#include "common.h"

void
foo ()
{
  LALA lala;
}

int
main ()
{
  return 0;
}


b.c
Code:
#define HELLO
#include "common.h"

void
bar ()
{
  LALA lala;
}


common.h
Code:
typedef struct
{
  int f1;
#ifdef HELLO
  int f2;
#endif
  int f3;
} LALA;


Makefile
Code:
all:
   nds32le-elf-gcc a.c b.c -g -O0 -o case1.out
   nds32le-elf-gcc b.c a.c -g -O0 -o case2.out


因為這裡的structure用條件式編譯的緣故,
相同的structure LALA,內容不相同。
我們可以從debug information中看到的element。
command為
Code:
$ nds32le-elf-readelf.exe -w case1.out >> out.txt


打開out.txt檔。
看到資訊如下圖,可知a.c中,LALA define的structure有2個int變數f1及f3,size為8 bytes
Attachment:
p1.gif
p1.gif [ 39.02 KiB | Viewed 4179 times ]


我們看b.c的debug information,可以看到LALA define的structure有3個變數,f1 f2 f3。
size為12 bytes
Attachment:
p2.gif
p2.gif [ 34.05 KiB | Viewed 4179 times ]


gdb用當時所指向的pc值去抓debug information,
所以不會抓錯變數。
最後,附上我測試用的檔案。
Attachment:
debug_info.zip [6.04 KiB]
Downloaded 455 times

Page 1 of 1 All times are UTC + 8 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/