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

duo: atoi crash #8943

Open
unicornx opened this issue May 13, 2024 · 2 comments
Open

duo: atoi crash #8943

unicornx opened this issue May 13, 2024 · 2 comments

Comments

@unicornx
Copy link
Contributor

unicornx commented May 13, 2024

bsp/cvitek/cv18xx_risc-v/ master 或者 5.1.0

简单的调用 atoi 函数会导致异常:

#include <rtthread.h>
#include <stdio.h>
#include <stdlib.h>

static int test(int argc, char *argv[])
{
    int v;
    v = atoi("100");
    rt_kprintf("v is %d\n", v);

    return RT_EOK;
}
MSH_CMD_EXPORT(test, test);

log 如下:

Unhandled Exception 2:Illegal Instruction
scause:0x0x0000000000000002,stval:0x0x0000000000000000,sepc:0x0x00000000802001ce
--------------Dump Registers-----------------
Function Registers:
        ra(x1) = 0x0x0000000080218002   user_sp = 0x0x0000000080259040
        gp(x3) = 0x0x0000000080234bb8   tp(x4) = 0x0x00000000deadbeef
Temporary Registers:
        t0(x5) = 0x0x0000000000000120   t1(x6) = 0x0x00000000deadbeef
        t2(x7) = 0x0x0000000080258f30
        t3(x28) = 0x0x00000000deadbeef  t4(x29) = 0x0x00000000deadbeef
        t5(x30) = 0x0x00000000deadbeef  t6(x31) = 0x0x00000000deadbeef
Saved Registers:
        s0/fp(x8) = 0x0x0000000080259080        s1(x9) = 0x0x00000000deadbeef
        s2(x18) = 0x0x00000000deadbeef  s3(x19) = 0x0x00000000deadbeef
        s4(x20) = 0x0x00000000deadbeef  s5(x21) = 0x0x00000000deadbeef
        s6(x22) = 0x0x00000000deadbeef  s7(x23) = 0x0x00000000deadbeef
        s8(x24) = 0x0x00000000deadbeef  s9(x25) = 0x0x00000000deadbeef
        s10(x26) = 0x0x00000000deadbeef s11(x27) = 0x0x00000000deadbeef
Function Arguments Registers:
        a0(x10) = 0x0x000000008022c7f8  a1(x11) = 0x0x00000000802590a8
        a2(x12) = 0x0x00000000802590a8  a3(x13) = 0x0x00000000802590a8
        a4(x14) = 0x0x0000000000000009  a5(x15) = 0x0x0000000000000009
        a6(x16) = 0x0x0000000000000074  a7(x17) = 0x0x00000000deadbeef
sstatus = 0x0x0000000200040120
        Supervisor Interrupt Disabled
        Last Time Supervisor Interrupt Enabled
        Last Privilege is Supervisor Mode
        Permit to Access User Page
        Not Permit to Read Executable-only Page
satp = 0x0x0000000000000000
        Current Page Table(Physical) = 0x0x0000000000000000
        Current ASID = 0x0x0000000000000000
        Mode = No Address Translation/Protection Mode
-----------------Dump OK---------------------
--------------Thread list--------------
current thread: tshell
--------------Backtrace--------------

@BernardXiong
Copy link
Member

好像很神奇呢,或许是对齐的缘故?atoi是libc的函数,目前用的libc是哪个

@flyingcys
Copy link
Contributor

v5.1.0正常,master有问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants