美文网首页unix
C语言_简单罗列初级开发常见错误和gdb断点调试

C语言_简单罗列初级开发常见错误和gdb断点调试

作者: 卢融霜 | 来源:发表于2019-10-20 22:19 被阅读0次

前言

暂时没有前言直接说

常见编译错误

1.将 "main"入口方法 写成 "mian"
这在编译时 会出现类似提示错误:"main函数未定义"。
2.大括号“{” 书写过多或过少
这在编译时错误定在最后一行,显示最后一行有错误。
3.缺少分号";"
这样在编译时类似会提示错误 (缺少分号的代码行的下一行代码前)缺少;
4.函数名称写错
这样在编译时会提示类似的错误:未定义的函数,找不到这个函数的声明语句
5.中英文符号混淆
这样在编译时会出现类似 '\273' '\255'的游离错误
还有等等错误:左值错误 这说明你可能操作了 常量; 段错误:这说明非法访问了内存;总线错误:大概意思时在SPARC等RISC类型的CPU中发生了"违反定位访问"的情况。

逻辑错误

一般指思维过程中违反形式逻辑规律的要求和逻辑规则而产生的错误;也就是编译不会出现错误,当程序运行时,程序运行逻辑和需求不统一。

gdb 调试

概述

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。

怎么使用?

1.生成可执行文件

gcc -g 源代码文件 -o 目标文件

2.启动 gdb

gdb 目标文件

3.调试 (输入名称) 命令罗列如下:

lurongshuang@ubuntu:~/work/work1020$ gcc -g main.c -o test -l dl
lurongshuang@ubuntu:~/work/work1020$ ls
add.c  add.h  add.o  a.out  libadd.so  main.c  main.o  test
 GNU gdb (Ubuntu 8.2.91.20190405-0ubuntu3) 8.2.91.20190405-git
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from test...
(gdb) r
Starting program: /home/lurongshuang/work/work1020/test 
1+1=2
[Inferior 1 (process 22521) exited normally]
(gdb) Quit

命令 ———— 命令缩写 ———— 命令说明
list ———— l ———— 显示多行源代码
break ———— b ———— 设置断点,程序运行到断点的位置会停下来
info ———— i ———— 描述程序的状态
run ———— r ———— 开始运行程序
display ———— disp ———— 跟踪查看某个变量,每次停下来都显示它的值
step ———— s ———— 执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句
next ———— n ———— 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句)
print ———— p ———— 打印内部变量值
continue ———— c ———— 继续程序的运行,直到遇到下一个断点
start ———— st ———— 开始执行程序,在main函数的第一条语句前面停下来
file ———— ———— 装入需要调试的程序
set var name=v ———— ———— 设置变量的值
kill ———— k ———— 终止正在调试的程序
watch ———— ———— 监视变量值的变化
backtrace ———— bt ———— 产看函数调用信息(堆栈)
frame ———— f ———— 查看栈帧
quit ———— q ———— 退出GDB环境

相关文章

  • C语言_简单罗列初级开发常见错误和gdb断点调试

    前言 暂时没有前言直接说 常见编译错误 1.将 "main"入口方法 写成 "mian"这在编译时 会出现类似提示...

  • linux编程入门(七)-使用gdb调试程序

    程序开发离不开调试,可以断点调试,也可以打log调试,linux下断点调试c,c++程序用gdb。 断点调试虽然很...

  • 网络编程1、调试

    pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令简写命令作用breakb设置断点...

  • gdb调试基本方法

    gdb调试基本方法 gdb调试常用命令 在GDB中运行程序 断点(BreakPoint) 观察点(WatchPoi...

  • iOS 安全配置

    一、关于GDB挂起问题 1.首先什么是GDB,GDB就是调试工具,在iOS中 xcode中的断点查看就是调试工具中...

  • iOS开发中常见错误

    iOS开发中遇到的常见错误,未完善后期修改整理完善! 苹果官方Xcode帮助IOS Xcode调试常用命令和断点整...

  • MacOS Gdb Debug

    最近又开始了我的Go语言开发之路,开发过程中想使用Gdb调试代码,但始终因为各种报错而导致Gdb调试不了,今天晚上...

  • GDB断点调试

    用gdb进行断点调试 以gbs.c为例1、 将要编译的文件编译成可执行文件要加-g参数gcc -g gbs.c -...

  • accumulator

    这是,gdb调试在SHA512下个断点 在这里就可以发现SHA512传入是的Input和input的长度,接下来c...

  • EOS 调试合约之日志打印

    EOS智能合约的开发,目前还没有办法像传统CPP开发一样通过lldb/gdb进行断点调试。目前只有通过打日志的方式...

网友评论

    本文标题:C语言_简单罗列初级开发常见错误和gdb断点调试

    本文链接:https://www.haomeiwen.com/subject/vzoamctx.html