相关疑难解决方法(0)

步入共享库的条件应该在gdb中运行?

有很多与特定错误相关的问题,为什么单独使用gdb进入共享库是行不通的.他们都没有就如何确定原因在哪里提供系统的答案.这个问题是关于诊断设置的方法.

设置示例

main.c中

#include <stdio.h>
#include "myshared.h"

int main(void)
{
    int a = 3;
    print_from_lib();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

myshared.h

void print_from_lib();
Run Code Online (Sandbox Code Playgroud)

myshared.c

#include <stdio.h>

void print_from_lib()
{
    printf("Printed from shared library\n");
}
Run Code Online (Sandbox Code Playgroud)

将所有文件放在同一目录中.

export LIBRARY_PATH=$PWD:$LIBRARY_PATH
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
gcc -ggdb -c -Wall -Werror -fpic myshared.c -o myshared-ggdb.o
gcc -ggdb -shared -o libmyshared-ggdb.so myshared-ggdb.o
gcc -ggdb main.c -lmyshared-ggdb -o app-ggdb
Run Code Online (Sandbox Code Playgroud)

得到错误

$ gdb ./app-ggdb 
GNU gdb (Ubuntu 7.12.50.20170314-0ubuntu1) 7.12.50.20170314-git
...### GDB STARTING TEXT
Reading symbols from app-ggdb...done.
(gdb) break 7
Breakpoint 1 …
Run Code Online (Sandbox Code Playgroud)

c linux debugging gdb

13
推荐指数
2
解决办法
788
查看次数

openSSL使用CA签署https_client证书

我需要:

  • 创建CA证书
  • 创建一个https_client证书
  • 由CA签署https_client证书

通过在Linux上使用命令行 - openSUSE.我创建了CA证书:

 # openssl genrsa -out rootCA.key 2048
Generating RSA private key, 2048 bit long modulus
..........................................................+++
....................+++
e is 65537 (0x10001)
 # openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you …
Run Code Online (Sandbox Code Playgroud)

ssl command-line openssl

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

command-line ×1

debugging ×1

gdb ×1

linux ×1

openssl ×1

ssl ×1