IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

gdb の list コマンドの使い方がやっと分かった

今まで

(gdb) n
261		if(argc <= 1)
(gdb) l
256		arch_flags = NULL;
257		narch_flags = 0;
258		all_archs = FALSE;
259		use_member_syntax = TRUE;
260	
261		if(argc <= 1)
262		    usage();
263	
264		/*
265		 * Parse the arguments.
(gdb) 

「こんなちょっとのコード見ても何のことかわかんねーよ!!」
って思ってたんですけど
そのままリターンキーを連打すれば良かったんですね!

たとえば、 main 関数の全貌を知りたくなったら

「l main」って打ってリターン連打みたいな感じでいいのか。
こんな感じ

(gdb) l main
242	int
243	main(
244	int argc,
245	char **argv,
246	char **envp)
247	{
248	    int i;
249	    unsigned long j, nfiles;
250	    struct arch_flag *arch_flags;
251	    unsigned long narch_flags;
(gdb) 
252	    enum bool all_archs, use_member_syntax;
253	    char **files;
254	
255		progname = argv[0];
256		arch_flags = NULL;
257		narch_flags = 0;
258		all_archs = FALSE;
259		use_member_syntax = TRUE;
260	
261		if(argc <= 1)
(gdb) 
262		    usage();
263	
264		/*
265		 * Parse the arguments.
266		 */
267		nfiles = 0;
268	        files = allocate(sizeof(char *) * argc);
269		for(i = 1; i < argc; i++){
270		    if(argv[i][0] == '-' && argv[i][1] == '\0'){
271			for(i += 1 ; i < argc; i++)
(gdb) 

気が済むまで読んだら n とかして先に進めばいい。