Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

好像{}的对应位置是错误的, #32

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion cm_backtrace/cm_backtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,11 +381,12 @@ size_t cm_backtrace_call_stack(uint32_t *buffer, size_t size, uint32_t sp) {
if (on_thread_before_fault) {
get_cur_thread_stack_info(sp, &stack_start_addr, &stack_size);
}
} else {
else {
/* OS environment */
if (cmb_get_sp() == cmb_get_psp()) {
get_cur_thread_stack_info(sp, &stack_start_addr, &stack_size);
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @caoliuchao, 我觉得{}位置没错,下面是我的看法:

  1. if (on_thread_before_fault)是为了切换到psp stack, 如果按照你的修改,能走到else case,那就意味着发生hardfault之前是handler mode, 此时没有必要再去检查是否为psp stack。
  2. 如果没有发生hardfault,cm_backtrace_call_stack默认使用msp,但当前可能处于handler mode或者thread mode,如果是thread mode,需要切换到psp stack。这就是else case。(如果按照你的修改,即使处于thread mode,还是在用msp stack。)

#endif /* CMB_USING_OS_PLATFORM */

}
Expand Down