yuqingli05

Results 15 comments of yuqingli05

> https://stackoverflow.com/questions/56782248/gcc-specified-bound-depends-on-the-length-of-the-source-argument > > 感觉这个警告有些不合理诶 非得让人去用sizeof 并不是 sizeof原因。strncpy,第三个参数是防止写入一次。上面用法 strlen是计算的第二个源字符串长度,这种用法违反了 strncpy的本质目的。让strncpy退化为strcpy,不如直接使用 strcpy了。 同样的问题在 sfud 代码里面一样存在 #6668。建议使用strcpy, 或者strncpy第三个参数 用来指示 目的字符串的最大长度,而不是源字符串的长度

> https://stackoverflow.com/questions/56782248/gcc-specified-bound-depends-on-the-length-of-the-source-argument > > 感觉这个警告有些不合理诶 非得让人去用sizeof 我认为,应该规范 strncpy的使用方式。类似的代码片段应该改成 strcpy,或者 重新正确使用strncpy的第三个参数。

> #6778 我将 rtthread 目录下的 unistd,h 删除之后,也能编译成功。原因是 gcc 头文件目录下也有这个头文件。rtthread 提供的和gcc 自身的有什么区别那?

> 这些整体上是比较困扰的,有几种方式, ①、编译库方式,可以类似 `scons --buildlib=Finsh`方式来对一个group进行打包; ②、可以把命令行参数放入到文件中,然后通过`@`接文件的方式编译。 > > 不过上述两种方式有的时候都会存在一定问题,例如编译成.a后,导出的shell命令会丢失。 据我所知使用 ld -r 命令可以把多个 .o 生成一个 .o。不知道这样是否可以 避免shell命令丢失的问题

> 这些整体上是比较困扰的,有几种方式, ①、编译库方式,可以类似 `scons --buildlib=Finsh`方式来对一个group进行打包; ②、可以把命令行参数放入到文件中,然后通过`@`接文件的方式编译。 > > 不过上述两种方式有的时候都会存在一定问题,例如编译成.a后,导出的shell命令会丢失。 > > 这些整体上是比较困扰的,有几种方式, ①、编译库方式,可以类似 `scons --buildlib=Finsh`方式来对一个group进行打包; ②、可以把命令行参数放入到文件中,然后通过`@`接文件的方式编译。 > > 不过上述两种方式有的时候都会存在一定问题,例如编译成.a后,导出的shell命令会丢失。 > > shell命令丢失,没有办法解决吗? 经过测试 gcc平台 使用 ld -r 命名把多个 .o 合并生成一个...

补一个问题说明:当我使用三个线程,两个互斥锁的时候,程序老是死锁,日志输出 “(thread == rt_thread_self()) assertion failed at function:_rt_thread_suspend, line number:885”。三个线程 和 两个互斥锁的用法 看上面100% 能复现问题的代码。

> 谢谢,这部分后续也加dlog分析下 我提交了一个PR来修复这个问题,不知道你们有更好的方法吗

> 我基于最新的代码测试了一下,好像没有复现。 ![图像](https://user-images.githubusercontent.com/25633294/216312761-d7587e36-3389-4cd5-ac13-6bd130a5c69a.png) 我刚用qemu工程测试,问题依旧。测试代码是上面的。你的测试代码不够新,4.1.1是可以的。我现有项目已经退回到4.1.1 工程了。这个问题是后面加入新特性导致的 ![image](https://user-images.githubusercontent.com/106426122/218322729-6a811561-bea6-498d-a79e-dc8aadbf072a.png)