0xffffffffc1131d1d in ?? () Cannot find bounds of current function

阅读量: searchstar 2021-01-23 00:38:06
Categories: Tags:

其实并不是崩了,只是gdb找不到目前在哪一行而已。为了验证,输入l命令打印附近的代码

(gdb) n
Cannot find bounds of current function
(gdb) l
221 unsigned long i;
222 int ret = 0;
223
224 while (a * 5 < (1 << max_bits_a)) {
225 a = a * 5;
226 ++thread_num;
227 }
228 thread_num = 1UL << floor_log_2(thread_num);
229 thread_num = NOVA_MIN(thread_num, sbi->cpus);
230 printk("Init blockmap using %lu threads\n", thread_num);
(gdb) n
Cannot find bounds of current function
(gdb) l
231 data = kmalloc(thread_num * sizeof(struct do_init_blockmap_data), GFP_KERNEL);
232 if (data == NULL) {
233 ret = -ENOMEM;
234 goto out;
235 }
236 tasks = kzalloc(thread_num * sizeof(struct task_struct *), GFP_KERNEL);
237 if (tasks == NULL) {
238 ret = -ENOMEM;
239 goto out;
240 }

可以看到行数改变了,说明没有崩。

所以尝试降低优化等级,再试就正常了。

相关:https://stackoverflow.com/questions/3082570/debugging-with-bochs-gdb-cannot-find-bounds-of-current-function