乐派·

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派·  发布于  2016-12-20 14:38:17
采纳率 0%
3个问答
3537

在使用给的rtsp-hi3516c-osd例程时报错,具体错误为segmentation fault

 
static  void get_zimo(char *str, char *buffer)
{
    printf("str=%s,buffer=%p\n",str,buffer);
    int len;
    int i = 0;
    char *p;
    signed  char c1, *str_;
    p = buffer;
    len = strlen(str);
    str_ = (signed    char *)str;
    while(i < len)
    {
        c1 = str_;
        if(c1 >= 0)//asiic
        {
            if(c1<0x20)
            {
                memset(p,0x00,16);
            }
            else
            {
                memcpy(p, &ASC_MSK[(c1-0x1f)*16], 16);
            }

            p = p + 16;
        }
        else
        {
            getHzKCode(&str_, p);
            p = p + 32;
            i++;
        }
        i++;
    }
}
我已经将错误定位到是这个函数的原因,第一个printf函数执行之后就出现错误,定义变量也不能成功,经过测试在int len,之后加入打印信息也不能执行下去,但是第一个printf是可以正常执行的,函数传入参数是正确的,我可以在第一局之前加入将传入的参数打印出来,也是没问题的。该怎么办呢 ?有没有相似的,我运行的是例程啊,这让我如何是好?:'(:'(:'(:'(
我来回答
回答11个
时间排序
认可量排序

cfgrpg

0个粉丝

7

问答

0

专栏

1

资料

cfgrpg 2016-12-20 15:42:36
认可0
哪里有这个例程?

drafour

1个粉丝

7

问答

0

专栏

1

资料

drafour 2016-12-20 16:21:42
认可0
segmentation fault出这个错误基本都是内存越界导致的,你看看memcpy 指针p的地方是否越界了

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-20 16:35:45
认可0
你好,谢谢,这个地方应该是没错的,因为出错的地方还没到这个地方呢,在定义int len;时就已经出错了,执行printf函数后,我在int len;后也加入了打印输出函数,发现不能输出,这真是奇怪啊!

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-20 16:36:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=43123&ptid=13726]cfgrpg 发表于 2016-12-20 15:42[/url]
哪里有这个例程?[/quote]

在我买的开发板里面有这样一个例程

drafour

1个粉丝

7

问答

0

专栏

1

资料

drafour 2016-12-21 07:49:13
认可0
生成core文件,解析一下看看

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-21 08:46:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=43139&ptid=13726]drafour 发表于 2016-12-21 07:49[/url]
生成core文件,解析一下看看[/quote]

大神,我生成了core文件怎么查看这个文件呢?我先自己查查吧,谢谢

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-12-21 11:44:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=43141&ptid=13726]乐派· 发表于 2016-12-21 08:46[/url]
大神,我生成了core文件怎么查看这个文件呢?我先自己查查吧,谢谢[/quote]

单元测试喽, 先把这个函数单独搞到一个简单的测试程序里面, 调用一下看看是不是出错



乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-21 14:05:00
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=43157&ptid=13726]zhuangweiye 发表于 2016-12-21 11:44[/url]
单元测试喽, 先把这个函数单独搞到一个简单的测试程序里面, 调用一下看看是不是出错[/quote]

我新建了一个例子调用该函数是没问题的

cfgrpg

0个粉丝

7

问答

0

专栏

1

资料

cfgrpg 2016-12-21 14:12:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=43162&ptid=13726]乐派· 发表于 2016-12-21 14:05[/url]
我新建了一个例子调用该函数是没问题的[/quote]

gdb 在线调试嘛

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-21 14:22:00
认可0
gcc之后在Linux pc上跑这个函数是没问题的,但是arm-inux-gcc在海思平台上跑是会爆出segmentation fault的,这会是什么原因呢?我没有海思的gdb工具,只有pc上的,但是在pc上运行是没问题的。有没有人可以分享一个啊

乐派·

0个粉丝

3

问答

0

专栏

0

资料

乐派· 2016-12-21 14:38:29
认可0
解决了,原来我少天家里一个文件进去,我忘了把取汉字子模的文件hanzi放进运行时的文件夹里:L:L,导致程序再取这个地方的存储内容时取到了非法地址的内存报错,因该是这个原因。谢谢大家了:lol:lol
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区