欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

面試八股文對(duì)校招的用處有多大?GDB篇

前言

1.本系列面試八股文的題目及答案均來自于網(wǎng)絡(luò)平臺(tái)的內(nèi)容整理,對(duì)其進(jìn)行了歸類整理,在格式和內(nèi)容上或許會(huì)存在一定錯(cuò)誤,大家自行理解。內(nèi)容涵蓋部分若有侵權(quán)部分,請(qǐng)后臺(tái)聯(lián)系,及時(shí)刪除。

2.本系列發(fā)布內(nèi)容分為12篇 分別是:

c/c++語言

數(shù)據(jù)結(jié)構(gòu)與算法

GDB

設(shè)計(jì)模式

操作系統(tǒng)

系統(tǒng)編程

網(wǎng)絡(luò)原理

網(wǎng)絡(luò)編程

mysql

redis

服務(wù)器

RPG

本文為第三篇,后續(xù)會(huì)陸續(xù)更新。 共計(jì)200+道八股文。

3.本系列的200+道為整理的八股文系列的一小部分。完整整理完的八股文面試題共計(jì)1000+道,100W字左右,體量太大,故此處放至百度云盤鏈接: https://pan.baidu.com/s/1IOxQs0ifbSPGgxK7Yz7BtQ?pwd=zl1i

提取碼:zl1i 需要的同學(xué)自取即可。

4.八股文對(duì)于面試的同學(xué)來說僅作為參考使用,不能作為面試上岸的唯一準(zhǔn)備,還是要結(jié)合自身的技術(shù)能力和項(xiàng)目,同步發(fā)育。

最后祝各位同學(xué)都能拿到自己滿意的offer,成功上岸!

三、GDB

01.怎么debug,怎么看內(nèi)存泄漏。

如何 Debug:

  1. 打印日志:在關(guān)鍵處添加輸出語句,打印變量的值、函數(shù)執(zhí)行狀態(tài)等信息,可以快速定位代碼問題。
  2. 斷點(diǎn)調(diào)試:在關(guān)鍵函數(shù)或代碼塊設(shè)置斷點(diǎn),通過單步執(zhí)行來查看變量的值和程序的執(zhí)行過程,可以更細(xì)致地定位問題。
  3. 使用工具:常用的工具包括 GDB、Valgrind 等。GDB 可以進(jìn)行斷點(diǎn)調(diào)試和查看內(nèi)存信息;Valgrind 可以檢測(cè)內(nèi)存泄漏、非法內(nèi)存訪問等問題。

如何查看內(nèi)存泄漏:

  1. 使用 Valgrind 工具中的 Memcheck 功能,運(yùn)行程序時(shí)添加參數(shù) --tool=memcheck,然后會(huì)自動(dòng)分析出哪些地方存在內(nèi)存泄漏。
  2. 在編寫代碼時(shí),在申請(qǐng)內(nèi)存后必須要釋放該內(nèi)存,這樣可以避免內(nèi)存泄漏產(chǎn)生。在使用 malloc() 和 new 申請(qǐng)堆空間時(shí)一定要配套使用 free() 和 delete 來釋放空間。
  3. 對(duì)于 C++ 中容器類 vector、map 等對(duì)象,在不需要使用時(shí)及時(shí)清空或刪除其中元素和對(duì)象指針,避免其持有無用資源導(dǎo)致內(nèi)存泄漏。
  4. 對(duì)于長(zhǎng)時(shí)間運(yùn)行的進(jìn)程應(yīng)當(dāng)注意監(jiān)控系統(tǒng)資源情況,并及時(shí)排查并解決可能存在的內(nèi)存泄漏問題。

02.gdb 使用 -> 多線程程序切換到某線程棧幀 -> 如何查看寄存器值

在 gdb 中查看某個(gè)線程的寄存器值,可以使用以下命令:

  1. 先使用 info threads 命令查看當(dāng)前所有線程的 ID。
  2. 然后使用 thread 命令切換到指定線程。比如要切換到線程號(hào)為 3 的線程,則輸入 thread 3。
  3. 使用 info frame 命令可以查看當(dāng)前棧幀信息,其中包括函數(shù)名、參數(shù)、局部變量等信息。如果需要查看寄存器值,則需要進(jìn)入某個(gè)具體的棧幀。
  4. 使用 up 或 down 命令可以在不同的棧幀之間切換。每次執(zhí)行 up 或 down 命令,都會(huì)將當(dāng)前位置切換到上層或下層的棧幀。
  5. 在特定的棧幀中使用 info registers 或者 i r 命令即可查看當(dāng)前寄存器的值。其中,i r 可以縮寫為 ireg 等幾種形式。

總之,在 gdb 中查看多線程程序中某個(gè)線程的寄存器值需要先通過 thread 切換到該線程,然后再進(jìn)入對(duì)應(yīng)棧幀并使用相關(guān)命令進(jìn)行操作。

03.怎么分析C++的core文件

一、概述

使用c++開發(fā)程序時(shí),經(jīng)常會(huì)遇到運(yùn)行中core的情況,如果是偶發(fā)的就更加難以定位,本文講解如何使用gdb進(jìn)行core位置的分析定位。

二、打開coredump文件生成

# 1. 支持產(chǎn)生coredump
# 查看當(dāng)前設(shè)置
cat /etc/security/limits.conf|grep core
ulimit -c      # 如果是unlimited,說明設(shè)置成功
# 設(shè)置(最好加到業(yè)務(wù)啟動(dòng)命令里)
ulimit -c unlimited

# 2.控制core文件保存位置和文件名格式
# 查看目前使用的方式
cat /proc/sys/kernel/core_pattern
# 修改生成位置和命名規(guī)則(必須bash -c 'echo xxx'方式,不能通過vi修改)
sudo bash -c 'echo "/coredump/%e_%p_%t.core" > /proc/sys/kernel/core_pattern'
# 命名格式參數(shù):
%p - insert pid into filename 添加pid
%u - insert current uid into filename 添加當(dāng)前uid
%g - insert current gid into filename 添加當(dāng)前gid
%s - insert signal that caused the coredump into the filename 添加導(dǎo)致產(chǎn)生core的信號(hào)
%t - insert UNIX time that the coredump occurred into filename 添加core文件生成時(shí)的unix時(shí)間
%h - insert hostname where the coredump happened into filename 添加主機(jī)名
%e - insert coredumping executable name into filename 添加命令名
# qnx系統(tǒng)下沒有/proc/sys/kernel/core_pattern文件,需要用命令指定保存目錄
dumper -d /coredump/

# 3.測(cè)試讓程序產(chǎn)生一個(gè)coredump
kill -6 $pid
kill -11 $pid

三、使用gdb分析core

1、使用gdb分析coredump文件

gdb ./bin/ipc_server   ipc_server.core   # 必須使用與core時(shí)一樣的bin/lib文件
(gdb) set args zmq 6000   # 指定運(yùn)行時(shí)的參數(shù)
(gdb) bt          # backtrace顯示當(dāng)前調(diào)用堆棧
(gdb) q           # 退出gdb

2、使用gdb調(diào)試bin文件

gdb -q ./bin/ipc_server
(gdb) set args zmq 6000   # 指定運(yùn)行時(shí)的參數(shù)
(gdb) r            # run運(yùn)行程序直到遇到 結(jié)束或者遇到斷點(diǎn)
(gdb) bt          # backtrace顯示當(dāng)前調(diào)用堆棧
(gdb) quit       # 退出gdb

04.GDB有哪些命令

1 啟動(dòng)gdb

1.1 運(yùn)行時(shí)調(diào)試可執(zhí)行程序

gdb
attach <pid>

或者

gdb attach <pid>

1.2 運(yùn)行結(jié)束調(diào)試core文件

gdb <program> <core dump file>

2 gdb交互命令

2.1 運(yùn)行

run (r):		其作用是運(yùn)行程序,當(dāng)遇到斷點(diǎn)后,程序會(huì)在斷點(diǎn)處停止運(yùn)行,等待用戶輸入下一步的命令。

continue (c):	繼續(xù)執(zhí)行,到下一個(gè)斷點(diǎn)處(或運(yùn)行結(jié)束)

next (n):		單步跟蹤程序,當(dāng)遇到函數(shù)調(diào)用時(shí),也不進(jìn)入此函數(shù)體;此命令同 step 的主要區(qū)別是,step 遇到用戶自定義的函數(shù),將步進(jìn)到函數(shù)中去運(yùn)行,而 next 則直接調(diào)用函數(shù),不會(huì)進(jìn)入到函數(shù)體內(nèi)。

step (s):		單步調(diào)試如果有函數(shù)調(diào)用,則進(jìn)入函數(shù);與命令n不同,n是不進(jìn)入調(diào)用的函數(shù)的

until:			當(dāng)你厭倦了在一個(gè)循環(huán)體內(nèi)單步跟蹤時(shí),這個(gè)命令可以運(yùn)行程序直到退出循環(huán)體。

until+line: 	運(yùn)行至某行,不僅僅用來跳出循環(huán)

finish: 		運(yùn)行程序,直到當(dāng)前函數(shù)完成返回,并打印函數(shù)返回時(shí)的堆棧地址和返回值及參數(shù)值等信息。

call func(args):調(diào)用程序中可見的函數(shù),并傳遞“參數(shù)”,如:call gdb_test(55)

quit (q):		退出gdb

2.2 斷點(diǎn)

break/breakpoints 可以簡(jiǎn)寫為b

break n :			在第n行處設(shè)置斷點(diǎn) //可以帶上代碼路徑和代碼名稱: b xxx.cpp:578

b fn1 if a>b:		條件斷點(diǎn)設(shè)置

break func:		在函數(shù)func()的入口處設(shè)置斷點(diǎn),如:break cb_button

delete n:			刪除第n個(gè)斷點(diǎn)

disable n:			暫停第n個(gè)斷點(diǎn)

enable n:			開啟第n個(gè)斷點(diǎn)

clear n:			清除第n行的斷點(diǎn)

info breakpoints :	顯示當(dāng)前程序的斷點(diǎn)設(shè)置情況

delete breakpoints:清除所有斷點(diǎn)

2.3 查看代碼

list  (l):	作用就是列出程序的源代碼,默認(rèn)每次顯示10行,再次輸入將接著上一次 list 命令的,輸出下邊的內(nèi)容。

list line:	將顯示當(dāng)前文件以“行號(hào)”為中心的前后10行代碼,如:list 12

list func:	將顯示“函數(shù)名”所在函數(shù)的源代碼,如:list main

2.4 打印

print 表達(dá)式 (p 表達(dá)式):其中“表達(dá)式”可以是任何當(dāng)前正在被測(cè)試程序的有效表達(dá)式,比如當(dāng)前正在調(diào)試C語言的程序,那么“表達(dá)式”可以是任何C語言的有效表達(dá)式,包括數(shù)字,變量甚至是函數(shù)調(diào)用。

print a:				將顯示 a 的值

print ++a:				將把 a 中的值加1,并顯示出來

print gdb_test(a):		將以變量 a 作為參數(shù)調(diào)用 gdb_test() 函數(shù)

display 表達(dá)式:			在單步運(yùn)行時(shí)將非常有用,使用display命令設(shè)置一個(gè)表達(dá)式后,它將在每次單步進(jìn)行指令后,緊接著輸出被設(shè)置的表達(dá)式及值。如: display a

watch 表達(dá)式:			設(shè)置一個(gè)監(jiān)視點(diǎn),一旦被監(jiān)視的“表達(dá)式”的值改變,gdb將強(qiáng)行終止正在被調(diào)試的程序。如: watch a

whatis :				查詢變量或函數(shù)

info function: 		查詢函數(shù)

info locals: 			顯示當(dāng)前堆棧頁的所有變量

輸出格式 一般來說,GDB會(huì)根據(jù)變量的類型輸出變量的值。但你也可以自定義GDB的輸出的格式。

x 按十六進(jìn)制格式顯示變量。
d 按十進(jìn)制格式顯示變量。
u 按十六進(jìn)制格式顯示無符號(hào)整型。
o 按八進(jìn)制格式顯示變量。
t 按二進(jìn)制格式顯示變量。
a 按十六進(jìn)制格式顯示變量。
c 按字符格式顯示變量。
f 按浮點(diǎn)數(shù)格式顯示變量。

p/format arg

2.5 查詢

where/bt :		當(dāng)前運(yùn)行的堆棧列表

bt backtrace :	顯示當(dāng)前調(diào)用堆棧

up/down :		改變堆棧顯示的深度

set args 參數(shù):	指定運(yùn)行時(shí)的參數(shù)

show args:		查看設(shè)置好的參數(shù)

info program: 	來查看程序的是否在運(yùn)行,進(jìn)程號(hào),被暫停的原因。

2.6 分割窗口

ayout:			用于分割窗口,可以一邊查看代碼,一邊測(cè)試:

layout src:	顯示源代碼窗口

layout asm:	顯示反匯編窗口

layout regs:	顯示源代碼/反匯編和CPU寄存器窗口

layout split:	顯示源代碼和反匯編窗口

Ctrl + L:		刷新窗口

2.7 變量和表達(dá)式

print和許多GDB的命令一樣,可以接受一個(gè)表達(dá)式,GDB會(huì)根據(jù)當(dāng)前的程序運(yùn)行的數(shù)據(jù)來計(jì)算這個(gè)表達(dá)式,既然是表達(dá)式,那么就可以是當(dāng)前程序運(yùn)行中的const常量、變量、函數(shù)等內(nèi)容。可惜的是GDB不能使用你在程序中所定義的宏。在表達(dá)式中,有幾種GDB所支持的操作符:

@ :	是一個(gè)和數(shù)組有關(guān)的操作符

:: :	指定一個(gè)在文件或是一個(gè)函數(shù)中的變量
eg :	p 'f2.c'::x

{} :	表示一個(gè)指向內(nèi)存地址的類型為type的一個(gè)對(duì)象

需要注意的是,如果你的程序編譯時(shí)開啟了優(yōu)化選項(xiàng),那么在用GDB調(diào)試被優(yōu)化過的程序時(shí),可能會(huì)發(fā)生某些變量不能訪問,或是取值錯(cuò)誤碼的情況。這個(gè)是很正常的,因?yàn)閮?yōu)化程序會(huì)刪改你的程序,整理你程序的語句順序,剔除一些無意義的變量等,所以在GDB調(diào)試這種程序時(shí),運(yùn)行時(shí)的指令和你所編寫指令就有不一樣,也就會(huì)出現(xiàn)你所想象不到的結(jié)果。對(duì)付這種情況時(shí),需要在編譯程序時(shí)關(guān)閉編譯優(yōu)化。

2.8 數(shù)組

有時(shí)候,你需要查看一段連續(xù)的內(nèi)存空間的值。比如數(shù)組的一段,或是動(dòng)態(tài)分配的數(shù)據(jù)的大小。你可以使用GDB的“@”操作符,“@”的左邊是第一個(gè)內(nèi)存的地址的值,“@”的右邊則你你想查看內(nèi)存的長(zhǎng)度。 @的左邊是數(shù)組的首地址的值,也就是變量array所指向的內(nèi)容,右邊則是數(shù)據(jù)的長(zhǎng)度,其保存在變量len中,其輸出結(jié)果,大約是下面這個(gè)樣子的:

p array@len
$1 = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40}

2.9 查看內(nèi)存

你可以使用examine命令(簡(jiǎn)寫是x)來查看內(nèi)存地址中的值 n、f、u是可選的參數(shù)。 n 是一個(gè)正整數(shù),表示顯示內(nèi)存的長(zhǎng)度,也就是說從當(dāng)前地址向后顯示幾個(gè)地址的內(nèi)容。 f 表示顯示的格式,參見上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。 u 表示從當(dāng)前地址往后請(qǐng)求的字節(jié)數(shù),如果不指定的話,GDB默認(rèn)是4個(gè)bytes。u參數(shù)可以用下面的字符來代替,b表示單字節(jié),h表示雙字節(jié),w表示四字節(jié),g表示八字節(jié)。當(dāng)我們指定了字節(jié)長(zhǎng)度后,GDB會(huì)從指內(nèi)存定的內(nèi)存地址開始,讀寫指定字節(jié),并把其當(dāng)作一個(gè)值取出來。

x/3uh 0x54320 :表示,從內(nèi)存地址0x54320讀取內(nèi)容,h表示以雙字節(jié)為一個(gè)單位,3表示三個(gè)單位,u表示按十六進(jìn)制顯示。

2.10 自動(dòng)顯示

你可以設(shè)置一些自動(dòng)顯示的變量,當(dāng)程序停住時(shí),或是在你單步跟蹤時(shí),這些變量會(huì)自動(dòng)顯示。相關(guān)的GDB命令是display(disp)。

display/fmt expr
display/fmt $addr
//expr是一個(gè)表達(dá)式,fmt表示顯示的格式,addr表示內(nèi)存地址,當(dāng)你用display設(shè)定好了一個(gè)或多個(gè)表達(dá)式后,只要你的程序被停下來,GDB會(huì)自動(dòng)顯示你所設(shè)置的這些表達(dá)式的值。

刪除自動(dòng)顯示,dnums意為所設(shè)置好了的自動(dòng)顯式的編號(hào)。如果要同時(shí)刪除幾個(gè),編號(hào)可以用空格分隔,如果要?jiǎng)h除一個(gè)范圍內(nèi)的編號(hào),可以用減號(hào)表示(如:2-5)。

undisplay dnums
delete display dnums

disable和enalbe不刪除自動(dòng)顯示的設(shè)置,而只是讓其失效和恢復(fù)。

disable display
enable display

查看display設(shè)置的自動(dòng)顯示的信息。GDB會(huì)打出一張表格,向你報(bào)告當(dāng)然調(diào)試中設(shè)置了多少個(gè)自動(dòng)顯示設(shè)置,其中包括,設(shè)置的編號(hào),表達(dá)式,是否enable。

info display

2.11 設(shè)置顯示選項(xiàng)

GDB中關(guān)于顯示的選項(xiàng)比較多,這里只例舉大多數(shù)常用的選項(xiàng)。

set print address on/off : 	開/關(guān)地址輸出,當(dāng)程序顯示函數(shù)信息時(shí),GDB會(huì)顯出函數(shù)的參數(shù)地址,系統(tǒng)默認(rèn)為打開的。
show print address : 			查看當(dāng)前地址顯示選項(xiàng)是否打開

set print array on/off : 		開/關(guān)數(shù)組顯示,打開后當(dāng)數(shù)組顯示時(shí),每個(gè)元素占一行,如果不打開的話,每個(gè)元素則以逗號(hào)分隔。這個(gè)選項(xiàng)默認(rèn)是關(guān)閉的。
show print array: 				查看當(dāng)前數(shù)組顯示選項(xiàng)是否打開。

set print null-stop on/off:	如果打開了這個(gè)選項(xiàng),那么當(dāng)顯示字符串時(shí),遇到結(jié)束符則停止顯示。這個(gè)選項(xiàng)默認(rèn)為off。

set print pretty on/off:		如果打開printf pretty這個(gè)選項(xiàng),那么當(dāng)GDB顯示結(jié)構(gòu)體時(shí)會(huì)比較漂亮。

set print sevenbit-strings on/off:設(shè)置字符顯示,是否按“\nnn”的格式顯示,如果打開,則字符串或字符數(shù)據(jù)按\nnn顯示,如“65”。

set print union on/off:		設(shè)置顯示結(jié)構(gòu)體時(shí),是否顯式其內(nèi)的聯(lián)合體數(shù)據(jù)。

eg:

typedef enum {Tree, Bug} Species;
typedef enum {Big_tree, Acorn, Seedling} Tree_forms;
typedef enum {Caterpillar, Cocoon, Butterfly}
Bug_forms;
struct thing {
  Species it;
  union {
    Tree_forms tree;
    Bug_forms bug;
  } form;
};
struct thing foo = {Tree, {Acorn}};
p foo
打開:$1 = {it = Tree, form = {tree = Acorn, bug = Cocoon}}
關(guān)閉:$1 = {it = Tree, form = {...}}

set print object on/off:		在C++中,如果一個(gè)對(duì)象指針指向其派生類,如果打開這個(gè)選項(xiàng),GDB會(huì)自動(dòng)按照虛方法調(diào)用的規(guī)則顯示輸出,如果關(guān)閉這個(gè)選項(xiàng)的話,GDB就不管虛函數(shù)表了。這個(gè)選項(xiàng)默認(rèn)是off。

set print static-members on/off:這個(gè)選項(xiàng)表示,當(dāng)顯示一個(gè)C++對(duì)象中的內(nèi)容是,是否顯示其中的靜態(tài)數(shù)據(jù)成員。默認(rèn)是on。

set print vtbl on/off:			當(dāng)此選項(xiàng)打開時(shí),GDB將用比較規(guī)整的格式來顯示虛函數(shù)表時(shí)。其默認(rèn)是關(guān)閉的。

2.12 歷史記錄

當(dāng)你用GDB的print查看程序運(yùn)行時(shí)的數(shù)據(jù)時(shí),你每一個(gè)print都會(huì)被GDB記錄下來。GDB會(huì)以2, 1。這個(gè)功能所帶來的好處是,如果你先前輸入了一個(gè)比較長(zhǎng)的表達(dá)式,如果你還想查看這個(gè)表達(dá)式的值,你可以使用歷史記錄來訪問,省去了重復(fù)輸入。

2.13 自定義變量

你可以在GDB的調(diào)試環(huán)境中定義自己的變量,用來保存一些調(diào)試程序中的運(yùn)行數(shù)據(jù)。要定義一個(gè)GDB的變量很簡(jiǎn)單只需。使用GDB的set命令。GDB的環(huán)境變量和UNIX一樣,也是以$起頭。

eg:set $foo = *object_ptr
show convenience:	查看當(dāng)前所設(shè)置的所有的環(huán)境變量

2.14 查看寄存器

info registers:	查看寄存器的情況。(包括浮點(diǎn)寄存器)
info all-registers:查看寄存器的情況。(除了浮點(diǎn)寄存器)

3 離線調(diào)試

當(dāng)你的用戶只能給你提供一個(gè)coredump文件而沒有實(shí)際運(yùn)行環(huán)境的時(shí)候,你也可以自己搭建離線調(diào)試環(huán)境。 需要準(zhǔn)備好,同版本的所有coredump進(jìn)程涉及到的二進(jìn)制文件,包括動(dòng)態(tài)鏈接庫,編譯出帶gdb編譯選項(xiàng)的版本,加載調(diào)試。 同版本指的是完全沒有代碼變更,這樣即使codedump文件使用release版本的軟件生成的,也可以用帶符號(hào)信息的debug版本的軟件來調(diào)試,十分強(qiáng)大! gdb 進(jìn)入gdb后,需要設(shè)置下本地的對(duì)應(yīng)lib的搜索路徑:

set solib-search-path lib1:lib2:libn

05.gcc和g++的區(qū)別

gcc和g++是兩個(gè)不同的編譯器,主要用于編譯C語言和C++語言的代碼。

  1. gcc:GNU Compiler Collection(GNU編譯器集合),是一個(gè)包括C、C++、Objective-C、Fortran、Ada等多種語言的編譯器。它可以對(duì)C語言進(jìn)行編譯,但對(duì)于C++程序則需要使用g++命令。
  2. g++:是gcc針對(duì)C++的一個(gè)前端。在處理文件時(shí),g++會(huì)自動(dòng)把源代碼中以.cpp或者.C結(jié)尾的文件當(dāng)做是C++程序來處理,并調(diào)用相應(yīng)的后端進(jìn)行編譯。

因此,主要區(qū)別在于:

  1. gcc主要用于編譯C程序,而g++主要用于編譯C++程序。
  2. g++除了支持 C 語言外還支持 C ++ 語言,并且可以正確地鏈接 C ++ 庫。
  3. 編寫 C 代碼時(shí)不需要使用 g ++ 前綴,在這種情況下直接使用 gcc 即可;而寫 C ++ 程序時(shí)則必須使用 g ++ 前綴來調(diào)用 g ++ 編譯器。

06.Linux下程序有問題,如何調(diào)試?(答GDB打開,打上Breakpoint進(jìn)行調(diào)試)

在Linux下,可以使用GDB(GNU調(diào)試器)來進(jìn)行程序的調(diào)試。下面是基本步驟:

  1. 編譯程序時(shí)加上 -g 選項(xiàng),以便生成可供GDB使用的調(diào)試信息。
  2. 打開終端,在命令行中輸入 gdb 命令并加上可執(zhí)行文件名作為參數(shù),例如:gdb my_program。
  3. 在GDB提示符下輸入 run 命令運(yùn)行程序。
  4. 如果程序出現(xiàn)錯(cuò)誤,GDB會(huì)在出錯(cuò)的位置停止執(zhí)行,并顯示出錯(cuò)信息。
  5. 可以在需要調(diào)試的代碼行前打上 breakpoint(斷點(diǎn)),用于暫停程序的執(zhí)行。例如,在GDB提示符下輸入 break line_number (line_number為需要暫停執(zhí)行的代碼行號(hào)),然后再輸入 run 命令重新運(yùn)行程序即可。
  6. 在程序暫停執(zhí)行時(shí),可以使用 GDB 提供的一系列命令來檢查變量、堆棧等信息,以及單步執(zhí)行代碼、跳轉(zhuǎn)到指定位置等操作。常用命令包括 print、backtrace、step、next、continue 等。
  7. 調(diào)試完成后,可以通過 quit 命令退出 GDB。
全部評(píng)論

相關(guān)推薦

目前在聯(lián)想北京總部已經(jīng)實(shí)習(xí)半個(gè)月啦,崗位是產(chǎn)品運(yùn)營(yíng)助理,是在&nbsp;IDG顯示器的&nbsp;operation組。&nbsp;閑來無事,把自己這段時(shí)間的實(shí)習(xí)心得總結(jié)一下,也可以給想來聯(lián)想的同學(xué)們一些參考。&nbsp;總體來說,聯(lián)想給人的感覺真的很好,不管是氛圍方面還是環(huán)境方面。&nbsp;??&nbsp;環(huán)境:可能是由于聯(lián)想會(huì)有很多國(guó)外業(yè)務(wù),所以工作環(huán)境其實(shí)有點(diǎn)像外企的感覺。我是在北京的聯(lián)想總部,整整兩棟大樓,地方非常大,周圍是百度新浪騰訊。辦公樓里面會(huì)有賽百味、&nbsp;costa、羅森等等,居然還有做美甲的地方,第一天看見的時(shí)候驚呆了。東區(qū)經(jīng)常會(huì)有一些活動(dòng),在西區(qū)的我有、、羨慕&nbsp;~東西區(qū)各有一個(gè)食堂,不過貌似東區(qū)的更好吃一點(diǎn),種類挺多的基本什么都有,...
點(diǎn)贊 評(píng)論 收藏
分享
ResourceUtilization:我嘞個(gè)董事長(zhǎng)
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
5
19
分享

創(chuàng)作者周榜

更多
正在熱議
更多
# 面試問題記錄 #
60197次瀏覽 873人參與
# 硬件人的簡(jiǎn)歷怎么寫 #
254178次瀏覽 2884人參與
# 京東TGT #
47361次瀏覽 174人參與
# 你遇到過哪些神仙同事 #
71568次瀏覽 641人參與
# 我的2024小目標(biāo) #
57937次瀏覽 390人參與
# 工作中,你有沒有遇到非常愛罵人的領(lǐng)導(dǎo)? #
16863次瀏覽 126人參與
# 百度工作體驗(yàn) #
204628次瀏覽 1907人參與
# 實(shí)習(xí)生應(yīng)該準(zhǔn)時(shí)下班嗎 #
201440次瀏覽 1314人參與
# 上班到公司第一件事做什么? #
37708次瀏覽 347人參與
# 國(guó)企和大廠硬件兄弟怎么選? #
119967次瀏覽 1656人參與
# 工作一周年分享 #
19046次瀏覽 111人參與
# 沒有合適的工作,你會(huì)先找個(gè)干著,還是考公考研 #
104234次瀏覽 1076人參與
# 面試吐槽bot #
13991次瀏覽 87人參與
# 互聯(lián)網(wǎng)行業(yè)現(xiàn)在還值得去嗎 #
6233次瀏覽 42人參與
# 面試經(jīng)驗(yàn)談 #
38765次瀏覽 506人參與
# 拼多多工作體驗(yàn) #
16566次瀏覽 152人參與
# 入職第五天,你被拉進(jìn)了幾個(gè)工作群 #
17814次瀏覽 80人參與
# 假如我穿越到了媽媽的18歲 #
6143次瀏覽 43人參與
# 國(guó)企vs私企,你更想去? #
217327次瀏覽 2072人參與
# 你們的畢業(yè)論文什么進(jìn)度了 #
999150次瀏覽 9398人參與
# 機(jī)械人,你的第一份感謝信是誰給的 #
26682次瀏覽 296人參與
牛客網(wǎng)
??推髽I(yè)服務(wù)