如何在menuconfig中找到Linux配置选项?

pho*_*ger 1 linux-kernel embedded-linux

各种网页告诉我要在Linux内核中获得完全真实的堆栈回溯,我需要CONFIG_FRAME_POINTER=y在我的.config文件中设置.所以我跑步make menuconfig并尝试在那里找到它,但是在哪里导航这样做几乎不直观.我搜索网页并找到许多说要启用它的页面,但是没有页面告诉我要进行深入研究的菜单选项.所以我想也许我可以运行make config,只需按[Enter]一百万次来选择所有内容的当前配置选项,然后将整个命令窗口缓冲区内容复制粘贴到文本文件中并搜索(不区分大小写)"frame_pointer"或"框架指针",但仍然没有运气; 显然我必须为某些子菜单选择'y',甚至可以深入到任何地方.

如何在config或menuconfig中找到这样的选项?是否在某处列出了选项配置层次结构?

更新:

我正在使用Linux Kernel v2.6.30.4-uc0; 这就是我使用Lantronix XPort Pro SDK的原因.

根据我得到的答案,我使用/搜索选项(不知道我之前是如何错过的),但我真的无法进一步了解.当我搜索"FRAME_POINTER"时,这就是我所看到的:

Symbol: ARCH_WANT_FRAME_POINTERS [=n]

Symbol: FRAME_POINTER [=n]
 Prompt: Compile the kernel with frame pointers
   Defined at lib/Kconfig.debug:620
   Depends on: DEBUG_KERNEL && (CRIS || M68K || M68KNOMMU || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300) || ARCH_WANT_FRAME_POINTERS
   Location:
     -> Kernel hacking
   Selected by: LOCKDEP && DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !MIPS && !PPC && !ARM_UNWIND && !S390 || FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_
Run Code Online (Sandbox Code Playgroud)

请注意,"选择者:"行比我看到的要长,即使我将make menuconfig窗口拉伸到整个屏幕的宽度,也没有选项可以找到滚动文本以查看全部内容.非常令人沮丧,因为大多数这种折磨都是如此.顺便说一句,非常感谢任何人认为适合downvote而不留下有用的评论.

所以我尝试使用上面的"搜索"信息导航到这个选项,但它仍然无处可寻!

当我进入Kernel hacking --->菜单时,没有选择启用堆栈帧.如@ ShantanuAde的回答所示,也没有菜单选项"编译时检查和编译器选项".我看到了这些选择:

------- Kernel hacking -------------------------
[ ] Show timing information on printks
[ ] Enable __deprecated logic
[ ] Enable __must_check logic
(1024) Warn for stack frames larger than (needs gcc 4.4)
[ ] Magic SysRq key
[ ] Enable unused/obsolete exported symbols
[ ] Debug Filesystem
[ ] Run 'make headers_check' when building vmlinux
[ ] Kernel debugging
[ ] Debug memory initialisation
[ ] Check for stalled CPUs delaying RCU grace periods
[ ] Sysctl checks
[ ] Sample kernel code  --->
[ ] Full Symbolic/Source Debugging support
[ ] Use fast second timer for profiling
[ ] Compiled-in Kernel Boot Parameter
[ ] Suppress Kernel BUG Messages
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一可能让我更接近CONFIG_FRAME_POINTER的是"内核调试"但是当我打开它时,我得到的唯一额外选项是:

[*] Kernel debugging
[ ]   Debug shared IRQ handlers (NEW)
[*]   Detect Soft Lockups (NEW)
[ ]     Panic (Reboot) On Soft Lockups (NEW)
[*]   Detect Hung Tasks (NEW)
[ ]     Panic (Reboot) On Hung Tasks (NEW)
[*]   Collect scheduler debugging info (NEW)
[ ]   Collect scheduler statistics (NEW)
[ ]   Collect kernel timers statistics (NEW)
[ ]   Debug object operations (NEW)
[ ]   Debug slab memory allocations (NEW)
[ ] Spinlock and rw-lock debugging: basic checks (NEW)
[ ] Mutex debugging: basic checks (NEW)
[ ] Spinlock debugging: sleep-inside-spinlock checking (NEW)
[ ] Locking API boot-time self-tests (NEW)
[ ] kobject debugging (NEW)
[ ] Verbose BUG() reporting (adds 70K) (NEW)
[ ] Compile the kernel with debug info (NEW)
[ ] Debug VM (NEW)
[ ] Debug the global anon/private NOMMU mapping region tree (NEW)
[ ] Debug filesystem writers count (NEW)
Run Code Online (Sandbox Code Playgroud)

非常非常令人沮丧.如果没有留下任何有用的信息,那么在没有任何帮助的情况下,它就无助于它.

Tsy*_*rev 9

make menuconfig工具键中/打开搜索对话框.输入所需的选项,将显示有关此选项的信息.此信息包括选项树中的"路径".

请注意,只有Depends on满足其表达式时,选项才会出现在选项树中; 您可以通过其他/搜索来检查这些选项.

某些选项永远不会显示在树中(对于此类选项"位置"部分不存在),因此用户无法选择它们.通常,这些选项由编译内核的体系结构定义.


小智 5

如上所述;在进行 menuconfig 后按“/”键搜索“FRAME_POINTER”。它将显示具有此字符串的所有配置选项。按所需选项上的数字。它将带您进入该特定配置。使用“空格”键更改配置。退出前不要忘记保存。

在我的系统上,我首先列出了以下输出

符号:FRAME_POINTER [=y]
类型:布尔
值 提示:使用帧指针编译内核
位置:
-> 内核黑客 (1) -> 编译时检查和编译器选项