llcppsigfetch:use fmt to log because linux nil defer of log

This commit is contained in:
luoliwoshang
2024-10-23 15:13:14 +08:00
parent a608c51e36
commit 91ebf88c97
3 changed files with 31 additions and 33 deletions

View File

@@ -19,7 +19,6 @@ package main
import (
"fmt"
"io"
"log"
"os"
"path/filepath"
"strconv"
@@ -43,7 +42,6 @@ func main() {
return
}
if ags.Verbose {
log.SetFlags(0)
parse.SetDebug(parse.DbgFlagAll)
}
extract := false
@@ -63,7 +61,7 @@ func main() {
extractFile = remainArgs[i+1]
i++
} else {
fmt.Println("Error: --extract requires a valid file argument")
fmt.Fprintln(os.Stderr, "Error: --extract requires a valid file argument")
printUsage()
os.Exit(1)
}
@@ -80,18 +78,18 @@ func main() {
if extract {
if ags.Verbose {
log.Println("runExtract: extractFile:", extractFile)
log.Println("isTemp:", isTemp)
log.Println("isCpp:", isCpp)
log.Println("out:", out)
log.Println("otherArgs:", otherArgs)
fmt.Fprintln(os.Stderr, "runExtract: extractFile:", extractFile)
fmt.Fprintln(os.Stderr, "isTemp:", isTemp)
fmt.Fprintln(os.Stderr, "isCpp:", isCpp)
fmt.Fprintln(os.Stderr, "out:", out)
fmt.Fprintln(os.Stderr, "otherArgs:", otherArgs)
}
runExtract(extractFile, isTemp, isCpp, out, otherArgs, ags.Verbose)
} else {
if ags.Verbose {
log.Println("runFromConfig: config file:", ags.CfgFile)
log.Println("use stdin:", ags.UseStdin)
log.Println("output to file:", out)
fmt.Fprintln(os.Stderr, "runFromConfig: config file:", ags.CfgFile)
fmt.Fprintln(os.Stderr, "use stdin:", ags.UseStdin)
fmt.Fprintln(os.Stderr, "output to file:", out)
}
runFromConfig(ags.CfgFile, ags.UseStdin, out, ags.Verbose)
}
@@ -136,9 +134,9 @@ func runFromConfig(cfgFile string, useStdin bool, outputToFile bool, verbose boo
}
if verbose {
if useStdin {
log.Println("runFromConfig: read from stdin")
fmt.Fprintln(os.Stderr, "runFromConfig: read from stdin")
} else {
log.Println("runFromConfig: read from file", cfgFile)
fmt.Fprintln(os.Stderr, "runFromConfig: read from file", cfgFile)
}
}
check(err)
@@ -148,7 +146,7 @@ func runFromConfig(cfgFile string, useStdin bool, outputToFile bool, verbose boo
defer conf.Delete()
if err != nil {
log.Println("Failed to parse config file:", cfgFile)
fmt.Fprintln(os.Stderr, "Failed to parse config file:", cfgFile)
os.Exit(1)
}
@@ -158,9 +156,9 @@ func runFromConfig(cfgFile string, useStdin bool, outputToFile bool, verbose boo
check(err)
if verbose {
log.Println("runFromConfig: header file paths", files)
fmt.Fprintln(os.Stderr, "runFromConfig: header file paths", files)
if len(notFounds) > 0 {
log.Println("runFromConfig: not found header files", notFounds)
fmt.Fprintln(os.Stderr, "runFromConfig: not found header files", notFounds)
}
}
@@ -204,7 +202,7 @@ func outputResult(result *c.Char, outputToFile bool) {
fmt.Fprintf(os.Stderr, "Error writing to output file: %v\n", err)
os.Exit(1)
}
fmt.Printf("Results saved to %s\n", outputFile)
fmt.Fprintf(os.Stderr, "Results saved to %s\n", outputFile)
} else {
c.Printf(result)
}
@@ -263,12 +261,12 @@ func outputInfo(context *parse.Context, outputToFile bool) {
func parseBoolArg(arg, name string, defaultValue bool) bool {
parts := strings.SplitN(arg, "=", 2)
if len(parts) != 2 {
fmt.Printf("Warning: Invalid -%s= argument, defaulting to %v\n", name, defaultValue)
fmt.Fprintf(os.Stderr, "Warning: Invalid -%s= argument, defaulting to %v\n", name, defaultValue)
return defaultValue
}
value, err := strconv.ParseBool(parts[1])
if err != nil {
fmt.Printf("Warning: Invalid -%s= value '%s', defaulting to %v\n", name, parts[1], defaultValue)
fmt.Fprintf(os.Stderr, "Warning: Invalid -%s= value '%s', defaulting to %v\n", name, parts[1], defaultValue)
return defaultValue
}
return value

View File

@@ -2,7 +2,6 @@ package parse
import (
"fmt"
"log"
"os"
"strings"
"unsafe"
@@ -67,11 +66,11 @@ type Config struct {
func NewConverter(config *clangutils.Config) (*Converter, error) {
if debugParse {
log.Println("NewConverter: config")
log.Println("config.File", config.File)
log.Println("config.Args", config.Args)
log.Println("config.IsCpp", config.IsCpp)
log.Println("config.Temp", config.Temp)
fmt.Fprintln(os.Stderr, "NewConverter: config")
fmt.Fprintln(os.Stderr, "config.File", config.File)
fmt.Fprintln(os.Stderr, "config.Args", config.Args)
fmt.Fprintln(os.Stderr, "config.IsCpp", config.IsCpp)
fmt.Fprintln(os.Stderr, "config.Temp", config.Temp)
}
index, unit, err := clangutils.CreateTranslationUnit(config)
@@ -130,16 +129,16 @@ func (ct *Converter) decIndent() {
func (ct *Converter) logf(format string, args ...interface{}) {
if debugParse {
log.Printf(ct.logBase()+format, args...)
fmt.Fprintf(os.Stderr, ct.logBase()+format, args...)
}
}
func (ct *Converter) logln(args ...interface{}) {
if debugParse {
if len(args) > 0 {
firstArg := fmt.Sprintf("%s%v", ct.logBase(), args[0])
log.Println(append([]interface{}{firstArg}, args[1:]...)...)
fmt.Fprintln(os.Stderr, append([]interface{}{firstArg}, args[1:]...)...)
} else {
log.Println(ct.logBase())
fmt.Fprintln(os.Stderr, ct.logBase())
}
}
}

View File

@@ -2,7 +2,8 @@ package parse
import (
"errors"
"log"
"fmt"
"os"
"github.com/goplus/llgo/c/cjson"
"github.com/goplus/llgo/chore/_xtool/llcppsymg/clangutils"
@@ -42,7 +43,7 @@ func (p *Context) Output() *cjson.JSON {
// ProcessFiles processes the given files and adds them to the context
func (p *Context) ProcessFiles(files []string) error {
if debugParse {
log.Println("ProcessFiles: files", files, "isCpp", p.IsCpp)
fmt.Fprintln(os.Stderr, "ProcessFiles: files", files, "isCpp", p.IsCpp)
}
for _, file := range files {
if err := p.processFile(file); err != nil {
@@ -55,12 +56,12 @@ func (p *Context) ProcessFiles(files []string) error {
// parse file and add it to the context,avoid duplicate parsing
func (p *Context) processFile(path string) error {
if debugParse {
log.Println("processFile: path", path)
fmt.Fprintln(os.Stderr, "processFile: path", path)
}
for _, entry := range p.Files {
if entry.Path == path {
if debugParse {
log.Println("processFile: already parsed", path)
fmt.Fprintln(os.Stderr, "processFile: already parsed", path)
}
return nil
}
@@ -76,7 +77,7 @@ func (p *Context) processFile(path string) error {
func (p *Context) parseFile(path string) ([]*FileEntry, error) {
if debugParse {
log.Println("parseFile: path", path)
fmt.Fprintln(os.Stderr, "parseFile: path", path)
}
converter, err := NewConverter(&clangutils.Config{
File: path,