zoukankan      html  css  js  c++  java
  • c语言,gdb

    Get gdb call stack http://blog.csdn.net/zoufeiyy/article/details/1490241

    Debugging with GDB - Examining the Stack  http://web.mit.edu/gnu/doc/html/gdb_8.html

    1)准备: gcc -g 
            ##########################################################################################
            CFLAGS += -I.. -g
            msview: msview.o
                $(CC) $(CFLAGS) -o $@ msview.o $(LDFLAGS) $(LDLIBS)
            ##########################################################################################
            # Standard object building
            .c.o:
                $(CC) $(CFLAGS) -g -c $< -o $@
            ##########################################################################################    
            # Standard object building for dynamic library components using -fPIC
            .c.lo:
                $(CC) $(CFLAGS) -g -fPIC -c $< -o $@
            ##########################################################################################
        (2break
                $       gdb ./msview 
                (gdb) break unpack.c:76
                (gdb) run data
        (3)查看调用堆栈
                (gdb) bt
                #0  msr_unpack (record=0x7ffff7ed2010 "000001D", ' ' <repeats 13 times>, "a262", reclen=4096, 
                ppmsr=0x7fffffffe210, dataflag=1 '01', verbose=0 '00') at unpack.c:76
                #1  0x0000000000417320 in msr_parse (record=0x7ffff7ed2010 "000001D", ' ' <repeats 13 times>, "a262", 
                recbuflen=4096, ppmsr=0x7fffffffe210, reclen=4096, dataflag=1 '01', verbose=0 '00')
                at parseutils.c:108
                #2  0x000000000040311a in ms_readmsr_main (ppmsfp=0x7fffffffe1a0, ppmsr=0x7fffffffe210, 
                msfile=0x7fffffffe66b "data", reclen=4096, fpos=0x0, last=0x0, skipnotdata=1 '01', 
                dataflag=1 '01', selections=0x0, verbose=0 '00') at fileutils.c:552
                #3  0x0000000000401d6e in ms_readmsr (ppmsr=0x7fffffffe210, msfile=0x7fffffffe66b "data", reclen=-1, 
                fpos=0x0, last=0x0, skipnotdata=1 '01', dataflag=1 '01', verbose=0 '00') at fileutils.c:105
                #4  0x00000000004017a2 in main (argc=2, argv=0x7fffffffe3b8) at msview.c:75
                
                断点打在 msr_unpack,npack.c:76
                            --msr_parse    parseutils.c:108
                                --ms_readmsr_main fileutils.c:552
                                    --main    msview.c:75
     
     

    GDB调试器用法 https://i.cnblogs.com/EditPosts.aspx?postid=4778015

    看内存:  x

       (gdb) x/10xb  0x400703  以十六进制方式查看内存地址0x400703开始10个字节的value。


      

      

    参考:

    1. 通过 GDB 学习 C 语言 http://blog.jobbole.com/87482/

    2. Linux gdb设置和管理断点 http://www.cnblogs.com/rosesmall/archive/2012/04/13/2445527.html

    3.Vim与GCC和gdb完美组合 http://www.cnblogs.com/Shirlies/p/3278937.html

    4. GDB使用基础(转载) http://bbs.21ic.com/blog-678712-84132.html

  • 相关阅读:
    1.1【基本路由原理】(二层转发原理)1
    NP课前资料2-IOU的传统安装方式
    NP课前资料1-安装GNS3桥接ASA
    1.2 数据仓库的特性
    1-1 事务型处理与分析型处理
    易用性测试关注点(转)
    Jenkins+svn+ant+tomcat持续集成
    并发数计算
    性能测试需求采集
    性能测试指标分析与监控
  • 原文地址:https://www.cnblogs.com/mylinux/p/4778015.html
Copyright © 2011-2022 走看看