'프로그램 사용'에 해당되는 글 2263건

  1. 2023.07.20 gcov와 gcovr
  2. 2023.07.19 gdbserver taget
  3. 2023.07.19 tek.com fft 관련 문서
  4. 2023.07.19 gdb conditional break
  5. 2023.07.13 audacity spectrogram 설정
  6. 2023.07.12 octave audioread wav
  7. 2023.07.12 sfft
  8. 2023.07.10 gcovr - gocv 를 html로
  9. 2023.07.10 gprof gui
  10. 2023.07.07 valgrind callgrind

gcc 에서 빌드시에 아래의 플래그를 설정하고

-fprofile-arcs -ftest-coverage

 

빌드시에 생성되는 *.gnco 파일을 바이너리와 동일 경로에 두고 프로그램을 실행하면 *.gcda 파일이 생성된다.

그리고 gcovr을 아래 옵션을 주고 실행하면 html로 결과가 나온다.

소스 디렉토리 내에 bin/ 이 하위 디렉토리로 있어서

bin 에서 covr을 실행하였기에 상위 디렉토리(소스 디렉토리)를 지정해야 해서 "-r .." 을 사용해야 한다.

$ gcovr -r.. --html-details -o gcov.html

 

다만 크로스컴파일 환경에서 실행경로가 다르면 이래저래 번거로우니

profile-dir 플래그로 실행환경에 맞추어서 넣어주어야 편리할 듯 하다.

gcov uses two files for profiling. The names of these files are derived from the original object file by substituting the file suffix with either .gcno, or .gcda. The files contain coverage and profile data stored in a platform-independent format. The .gcno files are placed in the same directory as the object file. By default, the .gcda files are also stored in the same directory as the object file, but the GCC -fprofile-dir option may be used to store the .gcda files in a separate directory.

[링크 : https://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html]

 

 

+

gcovr로 html 리포트를 생성하면 아래와 같이 나오는데

파일을 클릭하면 파일내에 branch 와 coverage가 나온다.

 

단일 파일 내에서는 Exec가 실행횟수 x는 실행이 한번도 되지 않은 영역이고

 

1/2 라고 나와서 눌러보면 머라고 나오는데 좀 이해가 안되네

'프로그램 사용 > gcov, gprof' 카테고리의 다른 글

gcovr - gocv 를 html로  (0) 2023.07.10
gprof gui  (0) 2023.07.10
gcc -p -pg  (0) 2016.02.25
gprof flat view 이해하기  (0) 2010.01.24
gcov, gprof  (0) 2010.01.23
Posted by 구차니

target remote를 이용하여 접속을 할때 사용하는 명령인데

target remote 이후에 포트를 적어주면 된다.

(gdb) help target
Connect to a target machine or process.
The first argument is the type or protocol of the target machine.
Remaining arguments are interpreted by the target protocol.  For more
information on the arguments for a particular protocol, type
`help target ' followed by the protocol name.

List of target subcommands:

target core -- Use a core file as a target.
target ctf -- (Use a CTF directory as a target.
target exec -- Use an executable file as a target.
target extended-remote -- Use a remote computer via a serial line, using a gdb-specific protocol.
target native -- Native process (started by the "run" command).
target record-btrace -- Collect control-flow trace and provide the execution history.
target record-core -- Log program while executing and replay execution from log.
target record-full -- Log program while executing and replay execution from log.
target remote -- Use a remote computer via a serial line, using a gdb-specific protocol.
target tfile -- Use a trace file as a target.

Type "help target" followed by target subcommand name for full documentation.
Type "apropos word" to search for commands related to "word".
Type "apropos -v word" for full documentation of commands related to "word".
Command name abbreviations are allowed if unambiguous.

(gdb) help target remote
Use a remote computer via a serial line, using a gdb-specific protocol.
Specify the serial device it is connected to
(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.).

(gdb) help monitor
Send a command to the remote monitor (remote targets only).

 

monitor는 remote로 붙었을때만 보내는 명령인데 reset은 검색되진 않는다.

(gdb) file C:/temp/Blinky.elf
Reading symbols from C:/temp/Blinky.elf...done.
(gdb) target remote localhost:2331
Remote debugging using localhost:2331
0x00000000 in ?? ()
(gdb) monitor reset
Resetting target
(gdb) load

[링크 : https://wiki.segger.com/J-Link_GDB_Server]

Posted by 구차니

 

 

Fundamentals of Real-Time Spectrum Analysis

[링크 : https://download.tek.com/document/37W_17249_5_HR_Letter.pdf]

 

Understanding FFT Overlap Processing Fundamentals

[링크 : https://download.tek.com/document/37W_18839_1.pdf]

 

FFT 오버랩 프로세싱의 이해

[링크 : https://download.tek.com/document/37K_18839_0.pdf]

 

'프로그램 사용 > fft, fftw' 카테고리의 다른 글

fft 결과에 N(입력 샘플 갯수)로 나누는 이유  (0) 2023.09.21
FFT RBW  (0) 2023.09.19
sfft  (0) 2023.07.12
fft window type과 진폭 보정계수  (0) 2023.07.04
fft window 함수  (0) 2023.07.03
Posted by 구차니

 

Set a breakpoint
The first step in setting a conditional breakpoint is to set a breakpoint as you normally would. I.e.

(gdb) break <file_name> : <line_number>
(gdb) break <function_name>
This will set a breakpoint and output the breakpoint number

Check breakpoints
If you forget which breakpoints you can add a condition to, you can list the breakpoints using:

(gdb) info breakpoints
Set a condition for a breakpoint
Set an existing breakpoint to only break if a certain condition is true:

(gdb) condition <breakpoint_number> condition
The condition is written in syntax similar to c using operators such as == != and <.

 

break 줄여서 br

$ gdb factorial
Reading symbols from factorial...done.
(gdb) br 28
Breakpoint 1 at 0x11bf: file factorial.c, line 28.
(gdb) condition 1 i > 5

 

아래 소스에서 28라인 i++ 에 break를 걸고, 해당 라인에서 i > 5 인 조건에서 잡히게 한다.

반복문의 경우 확실히 디버깅 할 때 편할 듯.

//This program calculates and prints out the factorials of 5 and 17


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

int factorial(int n);

int main(void) {

int n = 5;
int f = factorial(n);
printf("The factorial of %d is %d.\n", n, f);
n = 17;
f = factorial(n);
printf("The factorial of %d is %d.\n", n, f);

return 0;

}
//A factorial is calculated by n! = n * (n - 1) * (n - 2) * ... * 1
//E.g. 5! = 5 * 4 * 3 * 2 * 1 = 120
int factorial(int n) {
int f = 1;
int i = 1;
while (i <= n) {
f = f * i;
i++; // 28 line
}
return f;
}

 

[링크 : https://www.cse.unsw.edu.au/~learn/debugging/modules/gdb_conditional_breakpoints/]

Posted by 구차니

스펙트로그램 설정에 들어가면 fft 설정을 바꿀수 있다.

 

아쉽게도.. FFT Window Type / Size는 있는데 overlap 관련된 내용은 없네..

 

윈도우 크기가 커질수록

RBW(Resolution Band Width)가 낮아지면서 그래프가 더 세밀해지는 대신

시간축에 대해서는 현 시점으로 부터 더 뒤의 값을 보기 때문에

더 일찍 부터 다른 주파수의 값들이(아래 그림에서 하얗고 빨간 부분)이 먼저 나오게 된다.

즉, 윈도우 크기와 반응성은 반비례 라고 보면 되려나?

 

128

256

 

512

 

1024

[링크 : https://manual.audacityteam.org/man/spectrogram_view.html]

 

그래.. 12년 지났으면 까먹어도 인정해줘야지. 음!

2011.05.23 - [프로그램 사용/audacity] - audacity - spectrum analyze + Frequency Width

Posted by 구차니
프로그램 사용/octave2023. 7. 12. 11:30

various 치고는 wav, flac, ogg 세개는 너무하지 않냐.. mp3는 어디갔어 ㅠㅠ

 

33.1 Audio File Utilities
The following functions allow you to read, write and retrieve information about audio files. Various formats are supported including wav, flac and ogg vorbis.

Loadable Function: info = audioinfo (filename)
Return information about an audio file specified by filename.

Loadable Function: [y, fs] = audioread (filename)
Loadable Function: [y, fs] = audioread (filename, samples)
Loadable Function: [y, fs] = audioread (filename, datatype)
Loadable Function: [y, fs] = audioread (filename, samples, datatype)

[링크 : https://docs.octave.org/v4.0.0/Audio-File-Utilities.html]

'프로그램 사용 > octave' 카테고리의 다른 글

공짜 matlab? octave  (0) 2015.11.05
Posted by 구차니

'프로그램 사용 > fft, fftw' 카테고리의 다른 글

FFT RBW  (0) 2023.09.19
tek.com fft 관련 문서  (0) 2023.07.19
fft window type과 진폭 보정계수  (0) 2023.07.04
fft window 함수  (0) 2023.07.03
pFFFT 사용법  (0) 2023.06.15
Posted by 구차니

 

$ gcovr 
(WARNING) GCOV produced the following errors processing /proj/bin/app-config.gcno:
/proj/bin/app-config.gcda:cannot open data file, assuming not executed
Cannot open source file config.c

 

 

gcovr -r ../.. --html-details -o ../../../coverage.html ...

[링크 : https://github.com/gcovr/gcovr/issues/368]

 

GCOVR(1)                                                    User Commands                                                    GCOVR(1)

NAME
       gcovr - generate simple coverage reports

DESCRIPTION
       usage: gcovr [options] [search_paths...]

       A utility to run gcov and summarize the coverage in simple reports.

OPTIONS
       -h, --help
              Show this help message, then exit.

       --version
              Print the version number, then exit.

       -v, --verbose
              Print progress messages. Please include this output in bug reports.

       -r ROOT, --root ROOT
              The  root  directory  of your source files. Defaults to '.', the current directory. File names are reported relative to
              this root. The --root is the default --filter.

 

You can use __gcov_flush() method inside your code. You will need to invoke this from registered signal handler.

[링크 : https://stackoverflow.com/questions/13957649/gcov-not-showing-any-coverage-data]

 

Note the comment by Paweł Bylica -- __gcov_flush() has been removed in GCC 11, you should use __gcov_dump().

[링크 : https://stackoverflow.com/questions/19655479/undefined-reference-to-gcov-flush]

 

 

[링크 : https://educoder.tistory.com/entry/소프트웨어-공학gcov테스트-커버리지-측정]

  [링크 : https://gcovr.com/en/stable/guide.html]

[링크 : https://jchern.tistory.com/16]

[링크 : https://velog.io/@kongsub/GCOV-사용해보기-Lab1-Triangle]

'프로그램 사용 > gcov, gprof' 카테고리의 다른 글

gcov와 gcovr  (0) 2023.07.20
gprof gui  (0) 2023.07.10
gcc -p -pg  (0) 2016.02.25
gprof flat view 이해하기  (0) 2010.01.24
gcov, gprof  (0) 2010.01.23
Posted by 구차니

 

gprof 의 텍스트 결과는 솔찍히 보기 편하다고는 할 수 없는데, 그래서 gui를 찾아보는 중

 

[링크 : https://github.com/jrfonseca/gprof2dot]

   [링크 : https://stackoverflow.com/questions/2439060]

 

역시 역사와 전통의(?) k접두인가..

[링크 : https://kprof.sourceforge.net/]

 

solaris나 motif 같네? 아무튼 cgprof 라는 툴은 call graph로 그려준다.

[링크 : http://mvertes.free.fr/]

'프로그램 사용 > gcov, gprof' 카테고리의 다른 글

gcov와 gcovr  (0) 2023.07.20
gcovr - gocv 를 html로  (0) 2023.07.10
gcc -p -pg  (0) 2016.02.25
gprof flat view 이해하기  (0) 2010.01.24
gcov, gprof  (0) 2010.01.23
Posted by 구차니

valgrind는 일반적으로 메모리 누수를 찾는데 쓰지만

call graph라고 해야하나? call 관련 추적도 가능하다고 하니 다음에 돌려봐야겠다.

 tool에 여러가지 있는데 cachegrind 정도만 찾아봤던 흔적이 있네..

 

$ valgrind --tool=
32bit-core     arm-core       i386           mips64-cpu     power64-linux
32bit-linux    arm-vfpv3      lackey         mips64-fpu     powerpc
32bit-sse      arm-with       massif         none           s390-acr
64bit-avx      cachegrind     memcheck       power-altivec  s390-fpr
64bit-core     callgrind      mips           power-core     s390-vx
64bit-linux    dhat           mips-cp0       power-fpu      s390x
64bit-sse      drd            mips-cpu       power-linux    s390x-core64
amd64          exp-bbv        mips-fpu       power-vsx      s390x-linux64
amd64-avx      getoff         mips64         power64-core   s390x-vx
arm            helgrind       mips64-cp0     power64-core2  

 

 

[링크 : https://jchern.tistory.com/13]

[링크 : https://velog.io/@wjddms206/Valgrind-프로파일러-callgrind]

 

 

+

[링크 : http://www.cs.columbia.edu/~sedwards/presentations/iccad2003-somenzi.pdf]

[링크 : https://fileadmin.cs.lth.se/cs/Education/EDAF15/labs/lab4/index.html]

'프로그램 사용 > valgrind' 카테고리의 다른 글

valgrind 누수 종류  (0) 2022.01.18
vaglind 사용  (0) 2022.01.14
valgrind 지원 플랫폼  (0) 2014.10.15
valgrind GUI frontend- kcachegrind / valkyrie  (0) 2014.10.15
Posted by 구차니